2

我有一个 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。我查看了应用程序池设置和状态管理设置,没有发现任何差异。

4

2 回答 2

1

好的,我刚刚将它添加到 web.config 中:

<sessionState cookieless="true" />

这行得通,但必须有另一种方法来解决这个问题。

于 2010-01-11T18:14:08.643 回答
0

这两台机器的配置有所不同,这是毫无疑问的。

所以你已经对这两台机器的 web.config 做了一个差异,它们是相同的吗?不仅仅是粗略的外观,而是通过差异程序运行它?(我喜欢比较它!)

如果是这种情况,您需要在配置树的其余部分上...掌握 ASP.NET 安装目录中的 web.config...然后是 machine.config。

你会发现一些东西。

于 2010-01-11T21:41:14.503 回答