我有一个 ASP.NET Web 应用程序,它可以跨多个表单获取用户输入。有点像巫师。在第一个表单上,用户输入信息然后单击“下一步”按钮。在按钮的 Click 事件中,我将一些信息保存到 Session 对象(通过母版页中的属性)。然后我重定向到下一页。
这是我正在做的一个例子:
在第一页...
protected void NextButton_Click(Object sender, EventArgs args)
{
//Go to the next form
Master.SessionVal1 = Value1;
Master.SessionVal2 = Value2;
Response.Redirect("~/TheNextPage.aspx", false);
}
在 MasterPage.cs..
public long Value1
{
get { return (long)Session["Value1"]; }
set { Session["Value1"] = value; }
}
public long Value2
{
get { return (long)Session["Value2"]; }
set { Session["Value2"] = value; }
}
很基本的东西。当我在 VS2008 中以调试模式运行它时,它运行良好。当我将其推送到测试服务器 (IIS7) 时,当我尝试访问存储在 Session 对象中的 Value1、Value2 等时,会出现 NullReference 异常。
更新: 我发现如果我将代码迁移到一台服务器,我会遇到上述问题。但是,如果我升级到另一台服务器,它会按预期工作。
两台服务器都是带有 IIS7 的 Windows Server 2008。我查看了应用程序池设置和状态管理设置,没有发现任何差异。