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