2

Мои сеансы не кэшируются. Я использую совместное кэширование в своей веб-роли.Совместимый кеш не работает в веб-роли

У меня есть следующие в моей web.config:

<configSections> 
    <section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" /> 
</configSections> 
... 
<dataCacheClients> 
    <dataCacheClient name="default"> 
    <autoDiscover isEnabled="true" identifier="Website" /> 
    </dataCacheClient> 
</dataCacheClients> 

Мое определение облачный сервис (.csdef) выглядит следующим образом:

<ServiceDefinition name="WebCloud.Test" ...> 
    <WebRole name="Website" vmsize="Small"> 
    <Sites> 
     <Site name="Web"> 
     <Bindings> 
      <Binding name="Endpoint1" endpointName="Endpoint1" /> 
     </Bindings> 
     </Site> 
    </Sites> 
    <Endpoints> 
     <InputEndpoint name="Endpoint1" protocol="http" port="80" /> 
    </Endpoints> 
    <Imports> 
     <Import moduleName="Caching" /> 
    </Imports> 
    <Startup priority="-2"> 
     <Task commandLine="Microsoft.WindowsAzure.Caching\ClientPerfCountersInstaller.exe install" executionContext="elevated" taskType="simple" /> 
    </Startup> 
    </WebRole> 
</ServiceDefinition> 

И следующее в ConfigurationSettings от cscfg file:

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="DefaultEndpointsProtocol=http;AccountName=ACCOUNTNAME;AccountKey=ACCOUNTKEY==" /> 
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" /> 
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.NamedCaches" value="{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0}]}" /> 
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" /> 
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="20" /> 

Может ли кто-нибудь определить, почему он не работает? Возможно, это identifier в dataCacheClients?

ответ

1

Я исправил проблему. Следующие должны быть включены в web.config:

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

Это сохраняет состояние сеанса ASP.NET в кэше.

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