IIS挂网站
IIS hanging website
我有一个 ASP.NET 网站随机进入挂起状态。有时它会 return 非 .net 文件,如 css/js。其他时候它不会响应任何请求。当它处于状态时,它就消失了,只能用一个 IISRESET 来恢复。奇怪的是,当我执行 IISRESET 时,它失败了。我总是不得不 运行 第二次让网站回收。
我打开了 IIS 跟踪,时间限制为 10 秒。但这只会在站点 运行ning 正常且请求时间超过 10 秒时创建日志。但是当它处于这种挂起状态时,根本就没有记录任何trace请求日志。
我已经使用进程监视器寻找访问被拒绝的文件请求。但是有 none,这是有道理的。文件访问错误通常不是随机的。
我不知道如何诊断这个问题。我将获取 w3wp 的 mem dumb 并使用 WinDebug 对其进行分析,但我不确定这是否会给我关于罪魁祸首的任何有用信息。
对如何进行有任何想法吗?以下是请求列表。您可以在 stage:BeginRequest, module:IIS Web Core
.
中查看时间长度及其变化情况
C:\Windows\system32>%windir%\system32\inetsrv\appcmd list requests /elapsed:30000
REQUEST "fe00000280000147" (url:GET /, time:548687 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "d5000002800007da" (url:GET /_DEV/TdsService.asmx, time:496609 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "c4000000800001c9" (url:GET /, time:471609 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "df00000180000012" (url:GET /, time:431281 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "ff00000180000252" (url:GET /sitecore/service/keepalive.aspx?ts=3200641, time:385422 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "e500000180000060" (url:GET /default.css, time:289406 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "c10000008000029c" (url:GET /sitecore/service/keepalive.aspx?ts=8571320, time:196281 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
调试诊断是你的好朋友here.Launch挂起时的调试诊断和捕获跟踪,或者你可以将调试诊断设置为自动捕获跟踪
Tess Fernandez 的实验室可以提供帮助:https://blogs.msdn.microsoft.com/tess/2008/02/04/net-debugging-demos-lab-1-hang/
我有一个 ASP.NET 网站随机进入挂起状态。有时它会 return 非 .net 文件,如 css/js。其他时候它不会响应任何请求。当它处于状态时,它就消失了,只能用一个 IISRESET 来恢复。奇怪的是,当我执行 IISRESET 时,它失败了。我总是不得不 运行 第二次让网站回收。
我打开了 IIS 跟踪,时间限制为 10 秒。但这只会在站点 运行ning 正常且请求时间超过 10 秒时创建日志。但是当它处于这种挂起状态时,根本就没有记录任何trace请求日志。
我已经使用进程监视器寻找访问被拒绝的文件请求。但是有 none,这是有道理的。文件访问错误通常不是随机的。
我不知道如何诊断这个问题。我将获取 w3wp 的 mem dumb 并使用 WinDebug 对其进行分析,但我不确定这是否会给我关于罪魁祸首的任何有用信息。
对如何进行有任何想法吗?以下是请求列表。您可以在 stage:BeginRequest, module:IIS Web Core
.
C:\Windows\system32>%windir%\system32\inetsrv\appcmd list requests /elapsed:30000
REQUEST "fe00000280000147" (url:GET /, time:548687 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "d5000002800007da" (url:GET /_DEV/TdsService.asmx, time:496609 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "c4000000800001c9" (url:GET /, time:471609 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "df00000180000012" (url:GET /, time:431281 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "ff00000180000252" (url:GET /sitecore/service/keepalive.aspx?ts=3200641, time:385422 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "e500000180000060" (url:GET /default.css, time:289406 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
REQUEST "c10000008000029c" (url:GET /sitecore/service/keepalive.aspx?ts=8571320, time:196281 msec, client:127.0.0.1, stage:BeginRequest, module:IIS Web Core)
调试诊断是你的好朋友here.Launch挂起时的调试诊断和捕获跟踪,或者你可以将调试诊断设置为自动捕获跟踪
Tess Fernandez 的实验室可以提供帮助:https://blogs.msdn.microsoft.com/tess/2008/02/04/net-debugging-demos-lab-1-hang/