2

我最近将一个 ASP.Net (3.5) 应用程序移到了一个新服务器上,它产生了一个奇怪的问题,我在排除故障时遇到了问题。

在每个页面加载时,无论我使用什么浏览器(IE、FF、Chrome),ASP.Net/IIS 在每个页面加载时都会向我发出一个新会话,而忘记了它调用的上一个会话。

我有一个简单的页面来测试它,如下所示:

<asp:Button ID="Button1" Visible="true" runat="server" Text="Button" />

    <%= HttpContext.Current.Session("Test")%>
    <br /><br />
    <%= Session("GlobalTest") %> 
    <a href="Test.aspx">Reload the page</a>

在后面的代码中,我有这个按钮:

    HttpContext.Current.Session("Test") = DateTime.Now.ToLongTimeString

在 Global.asax

    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Code that runs when a new session is started
        Session("GlobalTest") = "Session Created on : " + DateTime.Now.ToLongTimeString()
    End Sub

当您按下按钮时,它最初会很好地显示会话值。去重新加载页面,或者通过链接,或者只是加载新的并且信息(除了现在更新到新时间的全局)消失。

在 web.config 中,会话是这样设置的:

<sessionState mode="InProc" timeout="15" useHostingIdentity="false" cookieless="false" />

有没有人经历过类似的情况?

4

3 回答 3

1

好吧,我想通了。感谢所有的建议。

事实证明,在网络配置中,发生的事情对我来说是一个鲜为人知的标签,我还没有为该站点设置 SSL 证书。删除它并像魅力一样工作。直到下周才会这样做。

这确实会产生尴尬的行为......它永远不会为任何人设置 cookie,但您可以正常使用 Session 并且当它重置 cookie 会话时它会在第一次加载时正常工作(并且您没有通过 SSL )。

再次感谢大家。

于 2013-05-01T16:00:16.940 回答
0

将会话放入 !IsPostBack 规则并重试

于 2013-04-30T20:00:46.733 回答
0

确保您没有写入 bin 目录,因为每次写入时都会重置 Application 和 Session 变量。

于 2013-04-30T20:26:02.217 回答