【问题标题】:ASP.NET Page calls an additional aspx page after loadingASP.NET 页面在加载后调用一个额外的 aspx 页面
【发布时间】:2009-01-27 19:47:14
【问题描述】:

为了简单起见,我们有几个 aspx 页面...

Page1.aspx - 重置 Session 信息。
Page2.aspx - 使用结果搜索表单并设置 Session 变量。
Page3.aspx , Page4.aspx, Page5.aspx - 需要在 Page2.aspx 上设置 Session 变量

我们发现,在加载 Page2.aspx 并设置 Session 变量时,正在调用 Page1.aspx 并重置 Session。但是,Page1.aspx 显示在浏览器中,而不是 Page2.aspx。当我们单步执行代码并在 Page1.aspx 和 Page2.aspx 的 Page_Load 事件中放置断点时,我们才能够发现这种情况发生,并且惊讶地看到 Page1.aspx 在 Page1.aspx 停止处理后立即处理 Page2.aspx服务器。

可能有用的信息...我们确实使用母版页,并且母版页中有指向 Page1.aspx 的链接。除此之外,我在代码库中找不到任何对 Page1.aspx 的引用。

更新:
可能是认证的原因?看来当我访问 Page2.aspx 时,服务器可能再次在 Page1.aspx 上进行身份验证?这是典型的吗?

【问题讨论】:

  • 请发布一些代码,以便我们更好地理解问题。
  • 请提供一些代码。奇怪的是 Page2.aspx 实际上知道 Page1.aspx 考虑到它不是它的母版页并且在代码中没有提到(我假设)
  • 这令人困惑。前半部分表示第 1 页是在第 2 页而不是第 2 页之后处理的,后半部分表示第 2 页是在第 1 页之后处理的。
  • 是设置为 loginUrl 的页面之一,还是类似的表单页面?

标签: asp.net vb.net master-pages load


【解决方案1】:

感谢安德鲁的提示。

我们弄清楚发生了什么...应用程序中的 Page1.aspx 确实是 Default.aspx。在 Page2.aspx 上,另一个开发人员在没有定义 src 属性的页面上放置了一个 img 标签。因此,当 Page2.aspx 执行时,它正在寻找位于网站根级别的图像,然后触发 Default.aspx (Page1) 上的代码并擦除会话。

总的来说,它看起来像这样......

在 Page2.aspx 上

<img src=""> <!-- this ended up triggering a call to Default.aspx, wiping the session -->

希望这对其他人有所帮助。

【讨论】:

    【解决方案2】:

    启动 Fiddler 并正常运行应用程序。它会告诉您正在发生的流量并确定哪些页面正在重定向到其他页面。知道路径后,您可以通过研究源代码来确定该路径存在的原因。

    您的应用程序域可能正在回收,因此所有会话变量都丢失了,如果会话变量丢失,您可能有代码重定向访问者,对吗?

    如果是这种情况,作为快速修复,您可以使用 StateServer 或将会话变量存储在 Sql Server 中。您的应用程序域不应该每分钟都在回收,但如果您正在“进行中”存储会话(这是默认设置),它可能会导致您看到的行为。

    【讨论】:

      猜你喜欢
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 2011-08-04
      • 2014-02-22
      相关资源
      最近更新 更多