我有一个在.NET Framework上运行的ASP.NET核心应用程序。我在IIS上托管它,一切正常,除了有时它正在重新启动的事实。我读到IIS可以重启应用程序的原因有很多。我发现对于一个ASP.NET应用程序,我可以将它放在我的web.config中,将原因记录到事件查看器中。
<healthMonitoring>
<bufferModes>
<add name="Critical Notification" maxBufferSize="100" maxFlushSize="20"
urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00"
maxBufferThreads="1" />
<add name="Notification" maxBufferSize="300" maxFlushSize="20"
urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00"
maxBufferThreads="1" />
<add name="Analysis" maxBufferSize="1000" maxFlushSize="100"
urgentFlushThreshold="100" regularFlushInterval="00:05:00"
urgentFlushInterval="00:01:00" maxBufferThreads="1" />
<add name="Logging" maxBufferSize="1000" maxFlushSize="200" urgentFlushThreshold="800"
regularFlushInterval="00:30:00" urgentFlushInterval="00:05:00"
maxBufferThreads="1" />
</bufferModes>
<rules>
<add name="All Errors Default" eventName="All Errors" provider="EventLogProvider"
profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00"
custom="" />
<add name="Failure Audits Default" eventName="Failure Audits"
provider="EventLogProvider" profile="Default" minInstances="1"
maxLimit="Infinite" minInterval="00:01:00" custom="" />
<add name="Application Lifetime Events Default"
eventName="Application Lifetime Events"
provider="EventLogProvider"
profile="Default"
minInstances="1"
maxLimit="Infinite"
minInterval="00:01:00"
custom="" />
</rules>
</healthMonitoring>
但是,它似乎不适用于ASP.NET Core,因为我得到的唯一日志是: 成功启动进程'4808'并正在侦听端口'21455'。知道如何展示同样的东西吗?
编辑:从日志中我可以看到没有未处理的异常。事件查看器不记录任何原因。我还禁用了应用程序池“回收...”设置下的所有回收条件。注意我在幕后使用SignalR也许非常重要。
编辑2:
在w3wp__DefaultAppPool__PID__4372__Date__03_06_2017__Time_03_44_34PM__887__Ntdll!ZwTerminateProcess.dmp ntdll上的汇编指令!来自Microsoft Corporation的C:\ Windows \ System32 \ ntdll.dll中的DbgBreakPoint在第9行引起了断点异常(0x80000003)
TLDR 3rd库导致IIS回收应用程序而不在事件日志中生成原因。第三个库可能会发生什么?|
编辑:我已经弄明白问题是什么了。我有一个以下结构: -Site- ParentApp -ChildApp(嵌套在ParentApp中)我的应用程序是ChildApp进程,第三方库在ParentApp目录中生成了一些数据。因为它们共享相同的应用程序池,所以IIS认为这是配置更改并重新启动该过程。实际上,ParentApp应该只是虚拟目录,但它偶然转换为应用程序。我仍然不知道如何在事件查看器中记录它。