【问题标题】:ASP.Net Website is creating a new session on each loadASP.Net 网站在每次加载时都会创建一个新会话
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 在 Page_Load 上创建了这个:If Not IsPostBack Then Session("Postback_test") = "Post Back Test : " + DateTime.Now.ToLongTimeString() End If 第一次加载时设置的值在回发后根本不显示(不存在),整个会话值就消失了。它出现了。
  • 你能不能试着把你的会话值放在视图状态,看看它是否也丢失了。
【解决方案2】:

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

【讨论】:

  • 这个网站实际上没有 bin 文件夹(它是一个基于 Web 应用程序的网站)。我什至将这个站点中的 Test.aspx 页面放到了一个单独的文件夹中,其中包含 web.config 和一个 global.asmx 文件,并从中创建了一个新应用程序,同样的事情也在这个较小的部分中发生网站的...它在每次加载时都会忘记 proc 中的会话变量。
【解决方案3】:

好的,我想通了。谢谢大家的建议。

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

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

再次感谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 2014-04-25
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多