回发之间的ASP.Net会话清算?

时间:2011-09-01 23:54:58

标签: c# asp.net session

今天突然出现,非常奇怪。我们无法弄清楚发生了什么变化,但它之前是有效的。

基本上我们有一个名为“ProjectSession”的类,它包含静态属性和与会话有关的方法 主要的是ProjectSession.ProjectId,它只是HttpContext.Current.Session["ProjectID"]的包装器。创建新项目时,我们在此属性中设置ID。如果用户已经有项目,我们在页面加载if (!IsPostBack)上设置值。很简单。

然而,今天中午我们突然开始看到这个值从会话中消失了。实际上整个会话对象正在清除。在网站的第一页上,如果用户有项目,我们会设置值。然后在第一次按下Button时,我们检查值并且它为null。

我们今天处理的每一段代码似乎都没有影响到这一点,实际上一切都在我们的生产服务器上工作正常,而不是在我们的本地机器上。

如果有任何想法可能会导致这种情况,请告诉我。

P.S。 - >我们有双重,三重和四重检查。有0行代码表示ProjectSession =,正好有2行代码表示ProjectSession.ProjectID =,这些是我在此问题中提到的2行。

2 个答案:

答案 0 :(得分:2)

Cassinni将一直重置“应用程序池”(它与IIS不同)。您应该尽可能在接近生产的环境中进行测试。至少我建议你使用IIS,如果它是你试图解决和重现的一个关键错误。

答案 1 :(得分:2)

答案是有人将此行添加到我们的Web.Config文件中: <httpCookies domain="THEPUBLICSITE" />

因此,当我们在本地工作时,服务器认为我们正在尝试跨站点脚本(XSS)。