“没有白屏”“Internet Explorer无法显示网页”

时间:2011-05-24 09:25:17

标签: asp.net internet-explorer iis

我们有一个ASP.NET网站,有时会锁定页面,没有内容,全白屏幕,最终在IE中超时返回IE错误页面标题“Internet Explorer无法显示网页”。注意拼写。我们称之为“白色无屏幕”。

来自IIS的日志,显示没有错误(没有400+状态代码),实际上,显示IE进入“无白屏”的页面,作为IIS日志中的状态代码200。此外,内部服务器端ASP.NET跟踪,显示所有代码按预期运行。

尝试重现此错误很困难。它不会持续发生。充其量,如果我们打开页面,关闭它们,并尽可能快地重复它,它最终会在尝试打开页面和/或帧的refesh时发生。它并不总是两次相同的页面。

有些页面使用AJAX控件。大多数人使用GridViews。一些使用Responce.Redirect。没有什么是一致的。

搜索“无白屏幕”或“Internet Explorer无法显示网页”的原因到处都是,并且似乎没有相关性。

在Visual Studio 2008调试会话中,我们设法捕获了“White Screen of Nothing”的一个实例,其中一个奇怪的未知线程被下面的调用堆栈锁定。注意,我不确定这个调用堆栈是否相关,或者它是否真的被锁定了。

[管理到原生过渡]

  

System.dll!System.Net.SafeCloseSocket.InnerSafeCloseSocket.Accept(System.Net.SafeCloseSocket socketHandle,byte [] socketAddress,ref int socketAddressSize)+ 0x13 bytes     System.dll!System.Net.Sockets.Socket.Accept()+ 0x73字节     WebDev.WebHost.dll!Microsoft.VisualStudio.WebHost.Server.OnStart(未使用的对象)+ 0x35字节     mscorlib.dll!System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(对象状态)+ 0x2f字节     mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext,System.Threading.ContextCallback callback,object state)+ 0x6f bytes     mscorlib.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(System.Threading._ThreadPoolWaitCallback tpWaitCallBack)+ 0x53 bytes     mscorlib.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(对象状态)+ 0x59字节

该堆栈中的所有函数都与我们编写的代码无关。我们对“Internet Explorer无法显示网页”以及该跟踪中调用的函数的各个方面进行了搜索,似乎没有任何关联。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

上次我处理这样的问题时,问题是响应耗时太长,和/或IIS回收了工作进程。由于这就像资源问题(尝试做一些需要太多时间,CPU或内存的事情),修复的细节会有所不同。

PerformWaitCallback,如果它正在等待一些非常慢的东西,它就是异步应用程序暂停的可能位置。

答案 1 :(得分:0)

我记得有两件事。 验证IIS的回收过程,它可能会在您的过程完成之前回收应用程序池。验证服务器的事件查看器,查看任何ASP.NET错误,我们可以为您提供更多信息,帮助您从中获取信息。