【问题标题】:Asp.net losing session on post back on some pages in chromeAsp.net 在 chrome 的某些页面上回发时失去会话
【发布时间】:2014-09-29 21:43:59
【问题描述】:

我正在尝试部署 Vb.net Asp.net Web 表单应用程序,但遇到了问题。

我们有一个稍微奇怪的问题,我们似乎在回发时失去了一些 chrome 中的 aspx 页面上的会话(不是全部)。

在 Internet Explorer 和 Firefox 中看起来非常好。

这仅在部署到 IIS 6 时发生,而不是在本地调试时发生。

它正在使用 HTTPS。

有没有人有任何想法或建议,为什么可能或将重点放在哪里?

没有发现 JavaScript 错误。 代码隐藏中没有发生错误。

感谢您的帮助!


更新 1: 感谢cmets。我们在所有页面的 cookie 中都有相同的 ASP.NET_SessionId - 这永远不会改变...... 1. 进入第一页,填写表格,添加会话变量 2. 进入第二页我们有会话变量,这些被选中page_load 事件。 3. 在第二页填写表单并提交,我们点击 page_load 事件,再次检查会话变量是否存在,但这次它们丢失了。 ...代码中没有任何地方可以清除这些会话变量。这是一个 Web 应用程序项目。

我认为我们正在使用表单身份验证,它设置为允许匿名,因为这将是一个公共应用程序 这仅在 Chrome 中发生,并且仅在部署到 IIS 时发生 - 在使用 Visual 进行本地调试时不会发生Studio 2010 测试网络服务器。会不会有一些不为人知的环境问题?这是非常令人沮丧的! :/ 我目前不在工作,所以我需要仔细检查其他一些细节,这是我们最近继承的代码,原作者不在我们身边。非常感谢您的帮助!我真的很感激。

更新 2: 我们在页面上的 SaveStateComplete 事件和回发之间的某处丢失了会话变量。

  • Page_Load - QuoteCarousel.aspx - 是回发 = False 会话 ID:yu2afsxpafu0qmzbkxqp1dd4。 会话中的项目:23
  • Page_SaveStateComplete QuoteCarousel.aspx 会话 ID:yu2afsxpafu0qmzbkxqp1dd4。 会话中的项目:32
  • Page_PreInit QuoteCarousel.aspx 会话 ID:yu2afsxpafu0qmzbkxqp1dd4。 会话中的项目:7
  • Page_Init QuoteCarousel.aspx 会话 ID:yu2afsxpafu0qmzbkxqp1dd4。 会话中的项目:8
  • Page_InitComplete QuoteCarousel.aspx 会话 ID:yu2afsxpafu0qmzbkxqp1dd4。 会话中的项目:8
  • Page_Load - QuoteCarousel.aspx - 是回发 = True 会话 ID:yu2afsxpafu0qmzbkxqp1dd4。 会话中的项目:8

【问题讨论】:

  • 很可能有一个名为 ASP.NET_SessionId 的 cookie 告诉我们它的值是否在回发期间的任何时候发生了变化,或者 cookie 是否被删除
  • 另外告诉我们您的会话是in proc 还是state server,以及您的会话超时时间是多少。
  • 部署了什么类型的项目web application projectweb site project
  • postback 在做什么?向我们展示您的回发代码。
  • 您如何确定会话丢失?例如,在 IE 上改变 chrome 的行为是什么?

标签: asp.net google-chrome session


【解决方案1】:

应用程序位于网站的物理文件夹中。 我将其更改为虚拟文件夹并解决了问题。我仍然不清楚问题的原因。

【讨论】:

    【解决方案2】:

    这可能对某些人有所帮助。我有同样的问题。在Firefox中工作,在IE中工作。 Chrome 中的会话丢失。基本上,我正在设置和绑定一个gridview,然后设置一个会话变量。当触发回发时,当代码在 RowCommand 事件中运行时,会话变量全部丢失。

    我不确定为什么会这样,但我在 web.config 中有这些值(认为它们是在我向我的网站添加一些 MVC 元素时自动添加的):

    <!--
        <add key="PageInspector:ServerCodeMappingSupport" value="Disabled" />
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    -->
    

    当我注释掉这些值时,一切都开始在 Chrome 中运行。因为我实际上并没有使用我添加的 MVC 引用,所以我很喜欢这个解决方案,但我不确定它为什么会起作用。

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 2021-06-09
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多