当我在 visual studio 2010 中调试它时,我遇到了一个奇怪的问题,即 session 在回发后结束。
我在第一页的 session 中存储了一个变量。它在下一页中保留其值,但之后它会丢失。它返回空值。奇怪的是,当我将确切的代码复制到开发或测试服务器时,它工作正常......
知道会发生什么吗?谢谢。
更新
代码相当简单。我有一个 default.aspx 页面,我在其中设置 session 变量:
HttpContext.Current.Session["PurchaseOID"] = purchaseOID;
当我单击“下一步”时,Default.aspx 页面将其重定向到 Information.aspx 页面。此页面上收集了其他用户信息(使用 DevExpress 控件)。当我在此页面上单击“下一步”时, session 变量“PurhcaseOID”在页面加载时返回 null。
protected void Page_Load(object sender, EventArgs e)
{
if(HttpContext.Current.Session["PurchaseOID"] == null){
throw new Exception("error!");
}
}
奇怪的是,Session 在页面首次加载时保留。但是在回发时,它失去了它的变量。此外,这是刚刚开始发生的事情。我已经在这段代码上工作了一个月左右,并且运行良好。当我将这个确切的代码部署到我们的开发或测试服务器时,它工作正常。
我正在 Cassini 中调试它。将不胜感激,谢谢!
沙赫扎德乔杜里
最佳答案
当您测试时,您是否禁用了 cookie?我问是因为 session ID 存储在 cookie 中,除非您使用的是无 cookie session (很少见)。因此,如果在您的测试环境中,您在浏览器中关闭了 cookie,那么它将无法获取 session 值。我不相信它在存储它们时会引发任何错误。
关于c# - 调试 ASP.NET 时 session 清除结束,但在开发和测试服务器上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4589275/