在Azure上用AppFabic替换WebRole的Session存储

 

在Azure上用AppFabic替换WebRole的Session存储

    如果一个WebRole在部署的时候,指定了多个Instance,则这些Instance之间的Session共享就是一个不得不解决的问题了。

    我们知道在Asp.net中Session的存储方式有:InProc,SQLServer,StateServer和Custom。此处就介绍在Azure上使用AppFabic来存储Session的方法。

 

1、 在Windows Azure Platform上开通Cache服务,如下图。

在Azure上用AppFabic替换WebRole的Session存储_第1张图片

 

2、 配置web.config来使用该Cache服务来存储Session

<configuration>
  <!-- 请务必保证此节点为第一个节点 -->
  <configSections>
    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
              allowLocation="true" allowDefinition="Everywhere"/>
  </configSections>
  <dataCacheClients>
    <dataCacheClient name="default">
      <hosts>
        <host name="myCacheName.cache.windows.net" cachePort="22233" />
      </hosts>

      <securityProperties mode="Message">
        <messageSecurity
          authorizationInfo="YWNzOmh0dHBzOi8vYXp1cmVtZ3ItY2FjaGUuYWNjZXNzY29udHJvbC53aW5kb3dzLm5ldC9XUkFQdjAuOS8mb3duZXImdWRWelVZbTBFTm1uOWQydWw5SlRjaFpzZHFLSGVVS1pNcktDZGczZndBcz0maHR0cDovL0F6dXJlTWdyLmNhY2hlLndpbmRvd3MubmV0">
        </messageSecurity>
      </securityProperties>
    </dataCacheClient>
  </dataCacheClients>

  <system.web>
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" timeout="20">
      <providers>
        <add name="AppFabricCacheSessionStoreProvider"
             type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
             cacheName="default"
             useBlobMode="false"
             dataCacheClientName="default" />
      </providers>
    </sessionState>
    
  </system.web>
</configuration>


 参考文章: Windows Azure AppFabric Caching 服务简介

                   安装,配置,使用Windows Server AppFabric

 

你可能感兴趣的:(windows,session,存储,asp.net,sqlserver,caching)