我有两个站点在同一台服务器上运行(Win2003上的IIS7)。
网站A是我的制作网站。
站点B是站点A的开发版本。除了web.config文件中的连接字符串外,两个站点都运行相同的代码。
在global.asax中的Session_OnStart中创建了一些会话变量。我注意到在过去的几周里,Site A的会话变量没有被正确创建。 (这些变量用于填充几个下拉列表)这会导致下拉列表不会自动填充或其他错误,具体取决于用户尝试访问的页面。
网站B的会话变量一直正常运行。当我点击站点B时,下拉列表就像我期望的那样填充。
我想要尝试的第一件事是重置IIS以查看是否可以解决问题,但我想知道为什么如果两个站点都运行相同的代码,我的会话将无法正确创建?
答案 0 :(得分:0)
我找到了一个解决方案,但我仍然不知道为什么会发生这种情况。
我采取防御性编码来处理我感兴趣的会话变量没有被正确初始化。当发生这种情况时,我已经有了正确设置变量的代码。 (多年来我一直是.NET开发人员,这是会议第一次出现问题)
我可以排除大多数常见原因 - 我知道会话没有超时,我知道没有对web.config或任何IIS设置进行更新(它是一个生产站点,所以没有人接触IIS而不放在支持票证中,唯一支持IIS票证的人是我。
当用户点击网站中的特定链接时,这似乎是一个问题。由于某些原因,访问此特定页面导致会话变量丢失。我无法解释原因,但至少我已经使代码工作而不再抛出异常。