我遇到一个asp.net mvc 4 Web应用程序的问题,当它加载时,它会每秒开始重启。它在Windows Server 2012和IIS 7.5上运行。这也导致CPU达到100%,直到其应用程序池被回收。我发现通过将记录HostingEnvironment.ShutdownReason记录到文本文件中,将记录添加到global.asax中的Application_End方法,可以回收应用程序。这告诉我正在重新启动应用程序,其中包含以下详细信息:原因:ConfigurationChange
但是我不知道发生了什么配置更改或导致了什么。研究内部并没有帮助,需要深入了解这些内容。我注意到虽然进程ID没有改变。
顺便说一句,我注意到在事件查看器中,在Microsoft&gt;下同时记录了关键错误。 Windows&gt; Application Server-Applications&gt;操作。 <例如
Unhandled exception. Exception details: System.Threading.ThreadAbortException: Thread was being aborted.
at System.Threading.WaitHandle.WaitMultiple(WaitHandle[] waitHandles, Int32 millisecondsTimeout, Boolean exitContext, Boolean WaitAll)
at System.Threading.WaitHandle.WaitAny(WaitHandle[] waitHandles, Int32 millisecondsTimeout, Boolean exitContext)
at System.Runtime.IOThreadTimer.TimerManager.OnWaitCallback(Object state)
at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)
有关问题所在的提示或信息,导致重启的原因是什么?有什么工具或技巧可以帮助吗?
任何反馈都会很棒。
答案 0 :(得分:0)
检查应用程序应用程序池回收配置。有一个虚拟内存阈值可以导致应用程序池被回收。
答案 1 :(得分:0)
从进程中抛出的任何异常都将重新启动应用程序池。任何异步任务都被视为处于停用状态,这就是为什么它会重新启动您的应用池。