【问题标题】:.net page loading twice without reason.net页面无故加载两次
【发布时间】:2011-08-31 13:20:27
【问题描述】:

我有一个不寻常的问题。我的 Web 应用程序中的每个页面都加载了两次!调试时,onload 事件被命中两次。我检查了 iis 日志并看到了相同的结果。

我的应用是 .net 3.5,asp.net c# 在 IIS7 中运行。

它发生在多个不同的环境中。

它不仅仅是一个页面,而是网站上的所有页面。为了测试这一点,我创建了一个空白页面,没有标记,例如。不是我阅读的图像或 iframe 上的空源标签可能会导致它。我还从 web.config 和 httphandlers 中删除了所有 httpmodules,但它仍在发生。

我现在没有想法,所以有人对我有任何建议或提示吗?

【问题讨论】:

  • YSlow 和类似的扩展过去曾导致此行为。可能值得检查?
  • 这正是它 - 导致它的 YSlow 插件!

标签: c# asp.net web-applications iis-7 pageload


【解决方案1】:

您需要检查是否已将 AutoEventWireUp 设置为 true,并且还需要手动将侦听器添加到 Load 事件。这个(或某些变体)将是您的问题(这很常见;这里有很多与此相关的问题)。

【讨论】:

    【解决方案2】:

    可能有不同的原因,

    • 检查不同的浏览器,看看是否有插件导致。
    • 检查 PostBack 是否正在调用下一次加载
    • 查看您是否处于调试模式,然后在可能的情况下调试代码以查看效果如何 真的加载了两次。

    【讨论】:

      【解决方案3】:

      我认为最好使用一些网络调试器工具来跟踪请求。我建议使用Fiddler

      【讨论】:

        【解决方案4】:

        我知道你已经回答了你自己的问题,但对于其他登陆这里的人......

        几年前,我发现(经过几天的挫折之后)页面在每次回发时加载两次,因为有人编写了自定义控件来呈现 html 内容,但是这些控件中有一个错误导致一些格式错误的标记(我不记得到底是什么,也许他们在某处忘记了结束标签)这导致我的浏览器重新加载页面。

        查找您的浏览器在生成的标记中可能发现的任何错误,并将其作为故障排除的一部分进行更正。

        【讨论】:

          【解决方案5】:

          在我的情况下,page_load 偶尔会触发两次,这很奇怪。我花了大约 10 天的时间来测试和试用。已经尝试了所有可能的解决方案。

          在意识到Default.aspx也触发了两次page_load之后,我们只能确认这是URL重写造成的。奇怪的是web.config中的重写代码没有任何问题。

          <rule name="Redirect to https" enabled="true" stopProcessing="true">
              <match url=".*" />
              <conditions>
                  <add input="{HTTPS}" pattern="off" ignoreCase="true" />
              </conditions>
              <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" /> 
          </rule>
          

          我们通过从 web.config 中删除 SSL 及以上代码、重新导入 SSL 并重新添加以上代码来解决此问题。

          【讨论】:

            猜你喜欢
            • 2014-02-24
            • 2013-08-17
            • 1970-01-01
            • 1970-01-01
            • 2017-02-20
            • 2014-12-20
            • 1970-01-01
            • 1970-01-01
            • 2011-08-28
            相关资源
            最近更新 更多