。net页面无故加载两次

问题描述 投票:4回答:5

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

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

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

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

我现在没主意了,所以有人对我有什么建议或提示吗?

c# asp.net web-applications iis-7 pageload
5个回答
0
投票

可能有不同的原因,

  • 在不同的浏览器中检查,看看是否有任何插件导致此问题。
  • 检查PostBack是否正在调用下一次加载
  • 查看您是否处于调试模式,如果可能,请调试代码以查看其方式实际加载两次。

1
投票

我知道您已经回答了自己的问题,但是对于落在这里的其他人...

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

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


0
投票

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


0
投票

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


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并重新添加上述代码,解决了该问题。


0
投票

@@ AjayR经过几天的磨合和重构,我的代码在之前工作得非常好。您对插件的回答救了我...。Bittorrent是罪魁祸首。竖起大拇指的人...我快要疯了。

© www.soinside.com 2019 - 2024. All rights reserved.