0

我有两个站点在同一台服务器上运行(Win2003 上的 IIS7)。

站点 A 是我的生产站点。

站点 B 是站点 A 的开发版本。除了其 web.config 文件中的连接字符串外,两个站点都运行相同的代码

global.asax 中的 Session_OnStart 中创建了一些会话变量。在过去的几周里,我注意到站点 A 的会话变量没有正确创建。(这些变量用于填充几个下拉列表)这会导致下拉列表不会自动填充或其他错误,具体取决于用户尝试点击的页面。

站点 B 的会话变量一直在正常工作。当我点击站点 B 时,下拉菜单按我的预期填充。

我想尝试的第一件事是重置 IIS 以查看这是否可以解决问题,但我想知道如果两个站点都运行相同的代码,为什么我的会话无法正确创建?

4

1 回答 1

0

我想出了一个解决方案,但我仍然不知道为什么会这样。

我结束了防御性编码以处理我感兴趣的会话变量,但未正确初始化。发生这种情况时,我有正确设置变量的代码。(多年来我一直是 .NET 开发人员,这是会话第一次成为问题)

我可以排除大多数常见原因 - 我知道会话没有超时,并且我知道没有对 web.config 或任何 IIS 设置进行更新(它是一个生产站点,所以没有人在不提供支持的情况下接触 IIS票,并且唯一为 IIS 提供支持票的人是我)。

当用户单击站点中的特定链接时,这似乎是一个问题。由于某种原因,访问此特定页面导致会话变量丢失。我无法解释原因,但至少我已经让代码正常工作并且不再抛出异常。

于 2012-10-01T17:17:17.553 回答