2015-01-19 2 views
0

Я использую следующую конфигурацию на экземпляре облачных сервисов в лазури для ASP.NET sessionstate в Web.Config:Azure распределенного кэша sessionstate истекает непосредственно

<sessionState mode="Custom" customProvider="DistributedCacheSessionStateStoreProvider"> 
    <providers> 
    <add name="DistributedCacheSessionStateStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" /> 
    </providers> 
</sessionState> 

И конфигурации datacacheclient в:

<dataCacheClients> 
    <dataCacheClient name="default" isCompressionEnabled="false"> 
     <autoDiscover isEnabled="true" identifier="InternetWebRole" /> 
     <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" /> 
    </dataCacheClient> 
    </dataCacheClients> 

Когда я создаю новое развертывание для облачных служб, процесс был успешно выполнен. Но когда я заходил на сайт, сеанс длится только 1 или 2 запроса. Щелчок на другой странице перенаправляет меня обратно на страницу входа. Аутентификация моего профиля выполняется успешно, но сеанс истек почти сразу. Я использую формы-аутентификацию с помощью обычного поставщика членства ASP.NET:

<authentication mode="Forms"> 
    <forms loginUrl="/Login" timeout="120" /> 
</authentication> 

Странно то, что 3 или 4 часа, проблема разрешилась сама собой. Я могу войти снова, и он держит мою сессию в течение двух часов подряд. Я удержал экземпляр, работающий сейчас на выходные, и все еще все работает нормально. Но как только я удалю развертывание и создаю новый, проблема начнется снова и снова. Есть ли кто-нибудь, кто узнает эту проблему с тем же провайдером sessionstate?

ответ

0

Я решил проблему, добавив машинный ключ в web.config, что является одинаковым для всех облачных сервисов.

Смежные вопросы