2010-03-17 86 views
5

我有两个ASP.NET MVC Web应用程序。其中一个将未处理的异常记录到Windows事件日志中。另一个没有。ASP.NET应用程序未记录到Windows事件日志中

在IIS或web.config中是否有设置来启用事件日志记录?

对于广泛问题的道歉,我真的在寻找调查途径。

+0

您是否在两个应用程序中都获得了标准的黄色死亡屏幕?什么版本的IIS/Windows? – 2010-03-17 13:40:46

+0

没有显示友好的错误信息。我在win2k3/iis6(?)和server2k8/iis7 – Ben 2010-03-17 13:48:42

+0

@Ben Aston上看到了相同的行为 - 错误信息是? – Oded 2010-03-17 14:10:33

回答

1

将正在启动的东西的CustomErrors添加到错误日志中。

最终的解决办法是

<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 

添加到web.config的

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
... 

节。这在IIS7中启用了Elmah。

松散的理解 - elmah正在拦截异常,由于上述原因而被错误配置,从而导致吞咽错误。打开自定义错误,似乎绕过了elmah,并启用了错误以推送到事件日志。

3

这通常是由于运行Web应用程序的帐户没有正确的写入事件日志的权限。

在IIS 7中,检查应用程序池正在运行的标识。

+0

通过将该站点的应用程序池设置为不记录,将其排除在与该站点相同的池中。 – Ben 2010-03-17 13:52:24

+0

@Oded NetworkService内置帐户是否有权写入事件日志? – myroslav 2017-06-07 16:15:12

+0

@myroslav - 它可以,只要它使用*现有*事件源。它没有足够的注册表权限来创建新的偶数来源。 – Oded 2017-06-07 16:17:25

1

如果运行webapp(IIS用户)的用户不是管理员,请确保事件源已在操作系统中注册。

+0

这是正确的,你需要特殊的权限来创建一个事件源(最终是一个reg键),但要写入事件日志(除了安全性),你几乎可以成为任何人。您可能需要先使用提升的权限创建它。 – 2010-03-17 13:56:47