Session.Start在触发时调用每个请求

时间:2009-04-01 15:51:12

标签: asp.net session sessionid

我有一个“在我的机器上工作”的情况。

我有一个网站,我使用

将会话值从一个页面传递到另一个页面
Session["foo"] = 'blah';

和第2页

var foo = Session["foo"];

foo在第2页上不存在。

在跟踪页面时,我发现它使用的是与原始页面不同的sessionid。在Session_start上设置断点时,对于每个请求,页面都会开始一个新会话。

这在我的机器上不会发生...并且想到我可以在其他机器上解决什么问题?

  • SessionState是InProc

  • Page1.aspx和Page2.aspx都是 同一网站的一部分和

  • 隐私 设置为接受所有cookie 目标机器。

编辑:在我的计算机和目标上运行的区别在于我在本地使用http://localhost/blah而在其他客户端使用http://XX_0001/blah,其中XX_0001是我的计算机

3 个答案:

答案 0 :(得分:1)

我认为我找到了解决方案:

看起来我机器名称中的_导致问题。似乎主机名不允许使用下划线:http://www.faqs.org/rfcs/rfc822.html

答案 1 :(得分:0)

我的第一个猜测是检查是否在出现问题的计算机上启用了cookie。它是否适用于其他浏览器等?

如果您也在更改网址,请确保您仍然在同一网站上,因为不同的网站会使用不同的网址。

答案 2 :(得分:0)

我认为字符串索引会话区分大小写。你有“foo”和“Foo”。这是一个错字吗?

否则,cookie也是我的猜测。