代码之家  ›  专栏  ›  技术社区  ›  PhillFox

为什么主机文件中的条目为每个请求创建新的sessionid

  •  1
  • PhillFox  · 技术社区  · 14 年前

    我正在更新我们的一个网站。此版本将根据请求中的主机名具有唯一的行为。为了测试这种行为,我修改了我的计算机主机文件,添加了指向我的计算机的条目。

    127.0.0.1       newhostname.sample.com
    127.0.0.1       oldhostname.sample.com
    

    在我开始使用Session对象之前,一切似乎都正常。我发现在每个请求之后,我所有的会话变量都丢失了。进一步的调查显示,服务器的每个响应都包含一个新的SessionID。

    为什么?

    我能够硬编码一些标志,以完成我的测试使用'本地主机'的请求没有任何问题。

    2 回复  |  直到 14 年前
        1
  •  0
  •   PhillFox    14 年前

    我不能解释,但我有一个可以接受的工作来解决我自己的问题。

    与其在主机文件中使用127.0.0.1,不如使用本地IP。因此,对主机文件中的名称的请求在本地处理,并且在整个站点中保持相同的SessionID。

    如果其他人能解释,我很高兴知道I is(或asp.net)在使用127.0.0.1时在做什么。

        2
  •  0
  •   Community Neeleshkumar S    7 年前

    我认为这与站点的域和传递的会话cookie有关-浏览器不会将从oldhostname.sample.com发送给它的cookie传递给newhostname.sample.com。

    要解决此问题,您需要设置发送的会话cookie的域。这个问题应该说明怎么做- ASP.NET Session Cookies - specifying the base domain .

    或者,您可以考虑使用无cookie会话。 http://msdn.microsoft.com/en-us/library/aa479314.aspx