mer*_*erk 5 application-pools 503-error iis-7.5
我有 2 个带有镜像内容的 Web 服务器。他们面前有一个负载平衡器。
从昨天开始,我们一直有人抱怨 503 错误。我在 IIS 日志文件中找不到任何 503 错误。然而,服务器主机说这些错误是由于我们网站中的 .Net 错误导致应用程序池回收。
他们指出了 windows 应用程序事件日志中的几个错误,如下所示:
Log Name: Application
Source: ASP.NET 4.0.30319.0
Date: 3/31/2012 8:35:37 PM
Event ID: 1309
Task Category: Web Event
Level: Warning
Keywords: Classic
User: N/A
Computer: 6251.local
Description:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 3/31/2012 8:35:37 PM
Event time (UTC): 4/1/2012 1:35:37 AM
Event ID: e7a580c7b38545cca3416a8595408f24
Event sequence: 97
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/2/ROOT-1-129777167518960645
Trust level: Full
Application Virtual Path: /
Application Path: C:\inetpub\wwwroot\mywebsite\
Machine name: 6252
Process information:
Process ID: 20000
Process name: w3wp.exe
Account name: IIS APPPOOL\MyAppPool
Run Code Online (Sandbox Code Playgroud)
特别是他们说进程信息下的帐户名称表明应用程序池正在回收。他们说如果应用程序池不回收,帐户名将是网站文件所在的文件夹。
我检查了应用程序池设置 - 它设置为每 29 小时回收一次。并且快速故障保护设置为默认 5 分钟内出现 5 次故障。但是在这么短的时间内,我还没有在事件日志中看到 5 次失败。
谁能帮我确认 503 响应是否确实是由应用程序池回收生成的?还是这些错误来自其他地方?我当时的猜测是他们的负载平衡器实际上是返回 503 错误的那个。但这只是猜测。
Tri*_*anK 12
您已经提到了“IIS 日志文件”(单数),但始终 需要评估两个日志:
503 更有可能出现在 HTTPERR 日志中,以及失败的原因,因为它们更有可能反映 HTTP.SYS 与工作进程通信失败(或队列溢出,这相当于类似的事情)。
另请参阅http://support.microsoft.com/kb/820729 - 当文章描述日志记录的作用以及(在底部)可能记录失败的原因时,不确定为什么会有“修复”。
多一点
大多数应用程序框架中有两个队列 - HTTP.SYS 请求队列(在内核模式下)和用户模式请求队列。如果用户模式框架(如 ASP.Net)在内部对请求进行排队,则工作进程的失败将导致其中排队的所有请求的 503(或最多 500),导致 HTTP.SYS 考虑这些请求被遗弃和无法挽救。
如果您的应用程序因未处理的异常而失败,您需要解决这个问题 - IIS 架构无法将 {batches of in-flight requests} 与 {the app午餐本身} 隔离,并且您将收到某种形式的错误传达给客户端 - 回收确保有一个新的工作进程准备好为第二次尝试服务。
| 归档时间: |
|
| 查看次数: |
5183 次 |
| 最近记录: |