Ho cercato di ottenere il ASP.NET Redis Session State provider configurato nella mia app per un po 'di tempo. Sono finalmente riuscito a collegarmi direttamente al master e impostare/ottenere le chiavi grazie a questo post: Can't connect to Redis server using ASP.NET Session State ProviderConfigurare ASP.NET Redis Session State Provider per la configurazione Sentinel
Ora, la mia prossima domanda ... far funzionare questo con una configurazione di Sentinel.
Ho familiarità con il comando SENTINEL get-master-addr-by-name master-dev-sessionstate
per determinare il master. Questo fornitore ha questo integrato? Sulla base dei commenti sul post del blog linkato sopra (che è anche l'unica documentazione che posso trovare su questo), sembra che dovrei essere in grado di utilizzare l'attributo connectionString per passare più host. Non sono sicuro che questi host multipli siano destinati a essere Sentinel o meno, comunque.
<connectionStrings>
<add name="RedisConnection" connectionString="1.2.3.4:5,6.7.8.9:10,abortConnect=false,ssl=false,password=XXXXXX,operationTimeoutInMilliseconds=5000"/>
</connectionStrings>
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<clear/>
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionString="RedisConnection"/>
</providers>
</sessionState>
Quando si configura la mia connessione come questo, ricevo questo errore:
Additional information: It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail.
ottengo questo errore anche quando ho solo il maestro IP nella mia stringa di connessione. Come puoi vedere sopra, ho abortConnect = "false" nella mia stringa di connessione, che è quello che mi sta chiedendo di fare. Lo stesso errore si verifica con o senza questo presente nella stringa di connessione.
Con questo in mente, qui sono le mie domande ...
- Questo provider di configurazioni supporto Sentinel?
- In caso affermativo, qual è il formato corretto per la stringa di connessione?
- Qualcuno ha altre buone risorse di documentazione per questo? Non sono nemmeno riuscito a trovare nulla sul sito di Microsoft al di fuori di quel post del blog.
MODIFICA: Devo notare che si tratta di un'installazione locale Redis personalizzata. Non stiamo correndo attraverso Azure.
EDIT: Recentemente ho provato a indicare la mia configurazione di lavoro su Sentinel e ricevo "Nessuna connessione disponibile per eseguire questa operazione: EVAL." Questo mi porta a credere che questo provider non abbia il supporto di Sentinel. Qualcuno può confermarlo?
Non riesco a vedere nell'esempio fornito in cui si passano più host e si tenta di determinare il master. Stiamo utilizzando un'installazione personalizzata di Redis su un server locale, non stiamo eseguendo Azure. –
Il provider di stato sessione MS Redis supporta solo Redis (e solo una connessione). Sentinel è un modulo di livello separato che gestisce un insieme di server Redis master/slave e richiede il supporto del codice client (http://redis.io/topics/sentinel#fundamental-things-to-know-about-sentinel-before- to-deploy - point 4) Puoi discuterne ulteriormente sul progetto git per esso https://github.com/Azure/aspnet-redis-providers – Darren
Anche la sezione web.config non è specifica di Azure. – Darren