ASP.Net网站正在每次加载时创建一个新会话

ASP.Net网站正在每次加载时创建一个新会话,asp.net,session,iis,session-cookies,Asp.net,Session,Iis,Session Cookies,我最近将一个ASP.Net(3.5)应用程序移到了一个新服务器上,它出现了一个奇怪的问题,我正在进行故障排除 在每次页面加载时,无论我使用的是什么浏览器(即FF、Chrome),ASP.Net/IIS都会在每次页面加载时向我发出一个新会话,忘记它调用的上一个会话 我有一个简单的页面来测试这一点,如下所示: <asp:Button ID="Button1" Visible="true" runat="server" Text="Button" /> <%= HttpCo

我最近将一个ASP.Net(3.5)应用程序移到了一个新服务器上,它出现了一个奇怪的问题,我正在进行故障排除

在每次页面加载时,无论我使用的是什么浏览器(即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>
在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" />


有没有人有过类似的经历

打开会话!IsPostBack规则并重试

确保您没有写入bin目录,因为每次写入时都会重置应用程序和会话变量。

好的,我已经解决了。谢谢你的建议

事实证明,发生的事情对我来说是一个鲜为人知的标记,在web配置中,我还没有为该站点设置SSL证书。去掉它,就像一个符咒。下周之前不会这么做的

这确实会造成尴尬的行为。。。它不会为任何人设置cookie,但您可以按常规使用会话,并且在第一次加载时它会正常工作,然后重置cookie会话(并且您没有通过SSL)


再次感谢各位。

会话取决于
cookies
。如何在web.config上设置
httpCookies
?我当前在web.config中没有httpCookies。请添加一个,并确保您设置了域。尝试了此操作,但整个网站崩溃,出现错误500.19:“无法访问请求的页面,因为页面的相关配置数据无效。”在加载页面上创建此项:
如果不是IsPostBack Then Session(“Postback\u test”)=“Post Back test:+DateTime.Now.ToLongTimeString()结束如果在第一次加载时设置的值在回发后根本不显示(不存在),则整个会话值将消失。它出现了。您是否可以尝试将会话值置于viewstate中,并查看其是否也丢失。此网站中实际上没有bin文件夹(它是web应用程序上的网站)。我甚至将这个站点中的Test.aspx页面与web.config和global.asmx文件放在一个单独的文件夹中,并用它创建了一个新的应用程序,同样的事情也发生在这个站点的较小部分中。。。每次加载时,它总是忘记proc中的会话变量。
<sessionState mode="InProc" timeout="15" useHostingIdentity="false" cookieless="false" />