ASP.Net网站正在为每个负载创建一个新会话

时间:2013-04-30 19:35:39

标签: asp.net session iis session-cookies

我最近将一个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" />

有没有人遇到类似的事情?

3 个答案:

答案 0 :(得分:1)

好的,我明白了。感谢您的所有建议。

原来我发现的是一个鲜为人知的标签,在网络配置中,我还没有为该网站设置SSL Certs。删除它,就像一个魅力。直到下周才计划这样做。

这确实会产生尴尬的行为......它不会为任何人设置cookie,但是你可以按照正常情况使用Session,它会在第一次加载时正常工作,然后重置cookie会话(你不是'通过SSL)。

再次感谢大家。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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