调试ASP.NET会话状态服务器问题

时间:2009-01-19 00:31:08

标签: c# .net asp.net session

我们有一个运行在负载平衡服务器实例上的应用程序,因此配置为使用在我们的一个数据库服务器上运行的ASP.NET会话状态服务。虽然我们的应用程序的两个实例都可以成功连接到状态服务器,但会话状态数据的更改不会反映在它们之间。 FI,如果我在服务器A上调用Session.Add('SomeKey', SomeData),那么如果我尝试访问服务器B上的Session['SomeKey'],则不会反映这一点。

Session.SessionID在两台服务器上返回相同的值,我检查过它们都使用在machine.config的machinekey部分配置的相同validationkey和decryptionkey值。我甚至尝试在应用程序web.config中指定这些值。

我应该注意哪些可能导致这些症状的其他事项,以及人们可以推荐哪些步骤来帮助调试此问题?

2 个答案:

答案 0 :(得分:5)

这有用吗:

http://support.microsoft.com/kb/325056

  

维持会话状态   Web场中的不同Web服务器,   网站的应用程序路径   (例如,\ LM \ W3SVC \ 2)中   Microsoft Internet信息   服务(IIS)元数据库必须是   同样适用于所有的Web服务器   网络农场。案件也需要   因为应用程序路径相同   区分大小写。

答案 1 :(得分:3)

我最终使用iiscnfg / copy从一台服务器到另一台服务器执行IIS元数据库的完整副本,从而解决了这个问题。感谢E.J Brennan让我走上荣耀之路。