我们的服务器上偶尔会发生 的奇怪问题。通常在我们的一个或多个Web应用程序升级时发生。调试问题让我走到了这一步......
在处理请求期间:
所以看起来会话服务不起作用,对吧?此代码每天运行数百次,在开发环境或生产环境中永不失败,仅与升级Web服务器上的Web应用程序有关。
奇怪的是:我们还没有真正喜欢纠正这种情况的正确方法。 IIS重置,ASP.NET状态服务器停止/启动,web.config编辑,甚至服务器重新启动都使用了所有bin - 通常需要一个组合来修复它+加上大量的咒骂和拉扯。并且在大多数情况下,它不会立即修复,但在第三次重置IIS之后可能需要两到三分钟。 (所以它可能不是解决它的原因。)
我在这里疯了。任何想法可能是什么问题?这是一个微软的bug吗?
更多信息:
答案 0 :(得分:2)
HttpContext.Items仅在请求的生命周期内可用,而不是整个会话,因此需要考虑。
回答原来的问题,
将项目添加到会话时可以 你在中成功检索它 下一行?
是服务器特定的吗? 即一个服务器可以看到值 会议但不是其他会议?
dll 那是试图访问 变量,有没有平台 它的目标差异,例如.e.g。 .net 1.1 vs .net 2.0?
答案 1 :(得分:0)
你能考虑不使用会话变量吗?
如果您需要同一会话中的数据,则可以使用HttpContext.Items,它比使用会话变量轻得多。
回答你的问题: 当您第一次访问会话时,可能还没有创建会话。如果它不存在,它将抛出异常。
检查
If Not IsNothing(Context.Session) Then
'do something
end if