【发布时间】:2013-04-24 19:57:39
【问题描述】:
我最近将一个 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" />
有没有人遇到过类似的情况?
【问题讨论】:
-
会话依赖于
cookies。你是如何在 web.config 上设置httpCookies的? -
我目前在 web.config 中没有 httpCookies。
-
然后添加一个,并确保您设置了域。
-
试过了,但是整个站点崩溃了,错误500.19:“请求的页面无法访问,因为该页面的相关配置数据无效。”
标签: asp.net session iis session-cookies