Elmah.MVC在IIS Express下可以运行但在IIS 7.5下无法运行。

16

我正在尝试在ASP.NET MVC下使用Elmah,我认为已经成功了。 我使用了非常方便的Elmah MVC项目,它自动设置了我的web.config文件。 现在,如果我在IIS Express下运行该项目,则Elmah运行得非常完美。 我可以使用正确的授权访问它,并且日志存储在我的SQL数据库中。 但是,当我尝试在IIS 7.5下运行它时,我遇到了一个:

An HTTP 500.19 Internal Server error 
Module  IIS Web Core
Notification    BeginRequest
Handler Not yet determined
Error Code  0x800700b7
Config Error    Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to 'ErrorLog'
Config File web.config

Config Source:
  111:     <modules>
  112:       <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
  113:     </modules>

我对为什么会这样感到困惑。 作为测试,我创建了一个全新的干净的MVC项目,它的反应方式完全相同。


1
尝试在 <add /> 之前做一个 <remove name="ErrorLog"/>。 - rene
太棒了。我不知道为什么我必须这样做,因为ErrorLog在其他地方没有出现,但它起作用了。我实际上还必须在接下来的三个条目上执行此操作,但Elmah正在工作!谢谢Rene。 - Chris Nevill
1个回答

21

在您的web.config文件的modules部分中,执行以下操作:

<remove name="ErrorLog"/>

然后执行以下操作:

<add />

这样做是为了消除任何默认定义的名为 ErrorLog 的条目。


你知道为什么这个能解决问题吗? - Arminder Dahul
1
@ArminderDahul 是的,无论是运行应用程序域的文件夹层次结构中的 machine.config 还是 web.config,都已经添加了名为 ErrorLog 的模块。elmah 安装程序似乎有一个批处理文件,可以为您进行这些更改,并将程序集添加到 GAC 中。 - rene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接