我有一个web场,其中包含4个web服务器,托管一个web应用程序(X),它由一个网络负载均衡器控制,用于不信任的会话维护,我使用了App fabric cache
作为会话提供程序。
我只使用一个带有创建区域的缓存服务器。
我的配置包含区域名称和共享应用程序ID,这在整个农场托管的所有web应用程序(X)中是相同的。
但是,如果我使用if访问web应用程序,那么所有的会话都是不同的。
http://10.10.10.1/myapp/file.aspx returns different session values
http://10.10.10.2/myapp/file.aspx returns different session values
http://10.10.10.3/myapp/file.aspx returns different session values
http://10.10.10.4/myapp/file.aspx returns different session values
http://servername/myapp/file.aspx returns different session values
在这个场景中,sharedId的用途是什么?虽然我的应用程序被托管在多个服务器中,但我的弃权是要维护一个会话,以提高性能。
主要问题是我的缓存不正常,有时会话值在更改后1-2分钟内也不更新。
我的web.config设置
<section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowLocation="true" allowDefinition="Everywhere"/>
<dataCacheClient>
<!-- cache host(s) -->
<hosts>
<host name="x" cachePort="22233" />
</hosts>
<securityProperties mode="None" protectionLevel="None" />
</dataCacheClient>
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
<providers>
<add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="xyz" sharedId="app123" />
</providers>
</sessionState>
发布于 2013-01-28 08:28:18
试着看看是否始终保持相同的ASPNET (在您最喜欢的浏览器中使用开发工具)。因为cookie也绑定到域,所以如果域不同,浏览器就不会发送它。
在缓存集群上,检查会话的数量:如果您有多个会话,那么您的分布式会话管理肯定会出现问题。
https://stackoverflow.com/questions/14516098
复制相似问题