我最近将一个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>
在Code Behind中我为Button提供了这个:
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" />
有没有人遇到类似的事情?
答案 0 :(得分:1)
好的,我明白了。感谢您的所有建议。
原来我发现的是一个鲜为人知的标签,在网络配置中,我还没有为该网站设置SSL Certs。删除它,就像一个魅力。直到下周才计划这样做。
这确实会产生尴尬的行为......它不会为任何人设置cookie,但是你可以按照正常情况使用Session,它会在第一次加载时正常工作,然后重置cookie会话(你不是'通过SSL)。
再次感谢大家。
答案 1 :(得分:0)
将会话放入!IsPostBack规则并重试
答案 2 :(得分:0)
请确保您没有写入bin目录,因为每次写入时都会重置Application和Session变量。