偶尔我的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
-1:
0:
如果XML web.config格式不正确,通常你会看到xml的坏行。
看似根本原因 - 我每天都会在设定的时间回收IIS,这似乎很糟糕:
- 一份申请表示不健康。工作进程现在将请求回收。给出的原因:可以在Web服务器的应用程序事件日志中找到详细说明此特定请求失败原因的错误消息。请查看此日志条目以了解导致此错误发生的原因。 数据是错误。
- 更多的“数据是错误”事件在上述同一秒内进行回收
- 一秒钟后。消息:抛出了类型'System.OutOfMemoryException'的异常.StackTrace:at System.Web.Hosting.HostingEnvironment.StopRegisteredObjects(Boolean immediate)
在System.Web.Hosting.HostingEnvironment.InitiateShutdownWorkItemCallback(对象状态)
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)
在System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
在System.Threading.ThreadPoolWorkQueue.Dispatch()
- ~1分钟后,Windows Eror报告开始......错误的应用程序名称:w3wp.exe
- 然后事件日志中的一切都很安静
我已经验证了:
- ProcMon显示无法访问{PathToMyVirtualApplicationWebsiteHere} \ web.config
- App Pool Recycle将解决问题(立即停止/启动),直到下次
醇>
更新
- 我在IIS 7.5上使用Application Initialization 1.0,与Url Rewrite Module ...一起使用,但是在没有正确安装的其他服务器上我们有完全相同的错误(但没有内存不足的问题)
醇>