我们在 4 台虚拟 Win 2008 R2 64 位服务器上运行一个网站。(在 Hyper-V 物理服务器之上)
这是 IIS 上的唯一站点,我们使用 Windows 网络负载平衡在我们的 4 个虚拟服务器之间共享负载。
我们已经使用这些虚拟服务器大约一周,并且开始发现一些问题。
IIS 毫无理由地停止提供页面,甚至没有响应错误。因此,在从服务器请求页面时,浏览器只是无限期地等待(或直到它决定放弃客户端)
有时 iisreset 可以解决问题,有时我们必须重新启动整个虚拟服务器。
事件日志中没有关于为什么会发生这种情况的痕迹,并且我们的应用程序异常日志中也没有任何痕迹。
此外,即使服务器负载很小,也会发生这种情况,因此似乎并不是因为服务器充斥着请求。
所以坦率地说,我在这里很茫然 - 我不知道从哪里开始调试这个问题:-(
我很确定我们的物理服务器从未遇到过这些问题,但是它们运行的是 Win 2003 32 位,因此它们与虚拟服务器之间存在很多差异。(这显然很难说出究竟是什么原因造成的)
答案1
IIS 7 上托管什么类型的应用程序?
如果这是一个 .net 网站,并且即使直接访问服务器后页面仍无法在客户端计算机上运行,我建议您远程桌面访问服务器并直接从服务器本身浏览页面。
如果您仍然无法从服务器本身浏览您的网站,请尝试浏览一个简单的 .html 页面,看看它是否有效。如果 .html 页面有效,请尝试访问不进行任何数据库调用的 .aspx 页面,看看它是否有效。如果简单的 .aspx 页面不起作用,则 .net 管道中存在一些问题。可能是您的请求正在排队,因此网站没有响应。
打开 Perfmon 并为ASP.NET
对象添加计数器。检查Request Queued
和Request Execution Time
,如果您在其中看到任何值,则答案是您的请求已排队。
如果没有,那么进行 ETW 跟踪将有所帮助,这将为您提供有关 .aspx 请求发生的情况的一些信息。
检查一下ETW 跟踪