2013-04-10 1 views
0

я читал в следующей странице, continualy WindowsAzure рецикл магазин сессийПочему мое состояние сеанса в MVC4 внезапно теряет данные?

Why do my instances recycle when trying to store sessions in co-located Azure cache?

Это моя установка WebConfig:

<sessionState mode="InProc" timeout="2880" /> 

Я читал, что, может быть, я должен изменить режим, чтобы сохранить сеанс жив, потому что, когда я использую программу, это случается внезапно. Давайте посмотрим позже часа.

Что я могу сделать, чтобы избежать этого плохого пользовательского опыта?

ответ

1

Если вы работаете с несколькими экземплярами, то теряете данные сеанса, поскольку балансировка нагрузки отбрасывает пользователей между экземплярами. Параметр «InProc» хранит данные сеанса для каждого отдельного экземпляра и НЕ через экземпляры - читается more.

Если вы хотите использовать со-расположен кэш, то ваш конфиг должен выглядеть примерно так:

<!-- Windows Azure Caching session state provider --> 
<sessionState mode="Custom" customProvider="AFCacheSessionStateProvider"> 
    <providers> 
    <add name="AFCacheSessionStateProvider" 
     type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" 
     cacheName="shared" 
     dataCacheClientName="shared" 
     applicationName="AFCacheSessionState"/> 
    </providers> 
</sessionState> 

Read more.

UPDATE: Наконец, убедитесь, что вы используете строку соединения REAL BLOB в файле ServiceConfiguration.cscfg. Если строка соединения говорит «UseDevelopmentStorage = истинный», развернутая роль никогда не сможет создать/подключение к кэшу - он будет работать локально в эмуляторе, хотя .:

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" /> 
+0

Извините за последнее время, но Я проводил все эти дни, чтобы реализовать его. Я создаю новый проект azure, в который входит моя MVC Applicacion, а также я добавил роль кэша (в качестве выделенной роли). Есть ли проблема, если я не использую совместное размещение? Я не знаю разницы между ними –

+0

Подождите! На самом деле, я не запускаю несколько экземпляров, моя страница использует общий режим только с экземпляром только –

+0

См. Обновление, добавленное выше, - повторное использование болей при развертывании - это симптом того, что строка конфигурации Cache BLOB установлена ​​на «UseDevelopmentStorage = true» – viperguynaz