会话状态在生产环境中发生变化,但在测试 Web 服务器上没有变化
Session state changes on production, but not on test web server
我有一个使用 IIS 10 的 c# 应用程序,多年来一直使用会话 ID 来跟踪用户在整个网站上的选择。
我这周做了一次更新,但我搞砸了一些东西,我似乎无法确定哪里做了更改。
我在测试和生产的同一页面上添加了一个文本框。
<asp:TextBox runat="server" ID="txtSession" ></asp:TextBox>
protected void Page_Load(object sender, EventArgs e)
{
txtSession.Text = Session.SessionID.ToString();
}
在测试中,当我刷新会话 ID 时,会话 ID 保持不变,但是当我在生产中时,当我刷新或转到不同的页面时,会话 ID 会发生变化。我检查了我的 web.config 两边,看不出这是哪里的问题。这是web.config两边
中唯一的会话行
<sessionState mode="InProc" timeout="120"/>
内global.asax.ca有以下
protected void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 60;
Session["User"] = "";
Session["UserLevel"] = 0;
Session["EmptyFields"] = -1;
//Session["SelectedID"] = "";
}
所以是任何帮助将不胜感激。我已经研究了将近 2 天,但似乎找不到问题所在。我的部分更新包括更新到 oracle 管理的数据访问 dll。这也存在于测试中并且工作正常。
我发现问题是从 bin 目录中删除了以下文件。
App_global.asax.compiled
App_global.asax.dll
我将它们复制回来后,一切都开始工作了。
我有一个使用 IIS 10 的 c# 应用程序,多年来一直使用会话 ID 来跟踪用户在整个网站上的选择。
我这周做了一次更新,但我搞砸了一些东西,我似乎无法确定哪里做了更改。
我在测试和生产的同一页面上添加了一个文本框。
<asp:TextBox runat="server" ID="txtSession" ></asp:TextBox>
protected void Page_Load(object sender, EventArgs e)
{
txtSession.Text = Session.SessionID.ToString();
}
在测试中,当我刷新会话 ID 时,会话 ID 保持不变,但是当我在生产中时,当我刷新或转到不同的页面时,会话 ID 会发生变化。我检查了我的 web.config 两边,看不出这是哪里的问题。这是web.config两边
中唯一的会话行<sessionState mode="InProc" timeout="120"/>
内global.asax.ca有以下
protected void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 60;
Session["User"] = "";
Session["UserLevel"] = 0;
Session["EmptyFields"] = -1;
//Session["SelectedID"] = "";
}
所以是任何帮助将不胜感激。我已经研究了将近 2 天,但似乎找不到问题所在。我的部分更新包括更新到 oracle 管理的数据访问 dll。这也存在于测试中并且工作正常。
我发现问题是从 bin 目录中删除了以下文件。
App_global.asax.compiled
App_global.asax.dll
我将它们复制回来后,一切都开始工作了。