.net页面加载两次没有理由

时间:2011-05-24 00:00:13

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

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

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

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

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

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

5 个答案:

答案 0 :(得分:1)

我知道你已经回答了自己的问题,但对于那些落在这里的人来说......

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

查找您的浏览器在生成的标记中可能发现的任何错误,并在故障排除过程中更正这些错误。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

可能有不同的原因,

  • 检查不同的浏览器,查看是否有任何插件导致该错误。
  • 检查PostBack是否正在调用下一次加载
  • 看看你是否处于调试模式,然后调试代码,如果可能的话,看看它是怎么回事 真的加载了两次。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

对于我来说,奇怪的是,偶尔会触发两次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并重新添加以上代码,解决了该问题。