在我执行应用程序池回收之前,我的 WebApi 应用程序偶尔会停止工作。
该站点遇到此 YSOD 错误:
Detailed Error Information
Module: IIS Web Core
Notification: BeginRequest
Handler: Not yet determined
Error Code: 0x8007000d
Config Error: Configuration file is not well-formed XML
Config File: \\?\{PathToMyVirtualApplicationWebsiteHere}\web.config
Physical Path: {PathToMyVirtualApplicationWebsiteHere}
这里最奇怪的问题是 YSOD Config Source 报告为空白:
Config Source
-1:
0:
如果 XML web.config 格式错误,通常您会在此处看到错误的 xml 行。
看似根本原因 -我有 IIS 每天在设定的时间回收,它似乎变坏了:
- 应用程序报告为不健康。工作进程现在将请求回收。给出的原因:可以在 Web 服务器的应用程序事件日志中找到详细说明此特定请求失败原因的错误消息。请查看此日志条目以了解导致此错误发生的原因。数据是错误的。
- 更多的“数据就是错误”事件在与上述相同的第二秒进行回收
- 一秒钟后。消息:引发了“System.OutOfMemoryException”类型的异常。StackTrace:在 System.Web.Hosting.HostingEnvironment.StopRegisteredObjects(Boolean immediate) at System.Web.Hosting.HostingEnvironment.InitiateShutdownWorkItemCallback(Object state) at System.Threading.ExecutionContext。 RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem( ) 在 System.Threading.ThreadPoolWorkQueue.Dispatch()
- ~ 1 分钟后 Windows 错误报告启动...错误的应用程序名称:w3wp.exe
- 然后在事件日志中一切都安静了
我已验证的内容:
- ProcMon 显示无法访问 {PathToMyVirtualApplicationWebsiteHere}\web.config
- App Pool Recycle 将解决问题(立即停止/启动),直到下次
更新:
- 我正在使用适用于 IIS 7.5 的应用程序初始化 1.0,与 Url Rewrite Module ... 在未正确安装的另一台服务器上,我们遇到完全相同的错误(但没有内存不足的问题)