C# 会话Id随机更改

C# 会话Id随机更改,c#,asp.net,session,C#,Asp.net,Session,我有一个简单的ASP.NET MVC应用程序。当运行第一个操作方法时,它会在会话变量中存储一些数据。在结果视图中,我有一个jqueryajax调用,该调用由另一个操作方法的按钮触发 当我单击按钮时,服务器端使用了不同的会话id,这有点随机。启动和单击按钮之间有时会有一秒左右的间隔,会话ID仍然会更改。这会在应用程序尝试检索第一个操作方法存储的数据时中断应用程序 知道发生了什么吗?两个请求都指向同一URL 我看到方法一实例化一个Id为X的新会话并存储数据 加载Jquery请求后立即激发。我在请求头

我有一个简单的ASP.NET MVC应用程序。当运行第一个操作方法时,它会在会话变量中存储一些数据。在结果视图中,我有一个jqueryajax调用,该调用由另一个操作方法的按钮触发

当我单击按钮时,服务器端使用了不同的会话id,这有点随机。启动和单击按钮之间有时会有一秒左右的间隔,会话ID仍然会更改。这会在应用程序尝试检索第一个操作方法存储的数据时中断应用程序

知道发生了什么吗?两个请求都指向同一URL

  • 我看到方法一实例化一个Id为X的新会话并存储数据
  • 加载Jquery请求后立即激发。我在请求头上看到不同的会话cookie id
  • 我收到一个错误“找不到数据”

  • 非常感谢,

    您所有的AJAX调用都使用相同的服务器名称:

    vs


    这是经过设计的,ASP.NET试图高效地为用户存储会话。请记住,除非您在会话中存储了任何内容,否则会话值会更改

    如果要告诉ASP.NET您希望它跟踪用户会话,可以执行以下两种操作之一:

  • 在会话中存储某些内容
  • 在GLobal.asax中简单处理Session_Start事件。此方法的存在将告诉ASP.NET跟踪会话,即使会话中没有数据
  • //注意:如果您正在进行此操作,则无需向会话中添加任何内容。。。 公共无效会话\u启动(对象发送方,事件参数)
    {
    }


    这种行为过去让我非常担心:)

    你是在服务器场后面吗?不,这是我的本地VS 2008开发服务器。这很有趣。然而,我在会话中存储了一些东西,然后在后续请求中尝试检索它。我已经添加了Session_Start方法,它似乎做到了这一点。非常困惑。