会话状态在生产环境中发生变化,但在测试 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

我将它们复制回来后,一切都开始工作了。