使用Elmah MVC无法访问生产服务器上的/ elmah?

我安装了elmah.mvc nuget软件包,并保留了那个sans的默认configuration,设置发送一封电子邮件并将其插入SQL数据库。

在我的本地机器上使用Visual Studio主机时,我可以打开我的应用程序并访问/ elmah,以查看错误报告。 但是,当我尝试访问/ elmah生产时,我得到两个错误,首先我得到一个403 access is denied服务器错误。 然后在我的电子邮件(从elmah)我得到:

 System.Web.HttpException: Server cannot set status after HTTP headers have been sent. 

任何人都知道这里发生了什么,以及如何解决? 谢谢。

到目前为止,我尝试了以下答案的build议:

<system.webServer>

 <handlers> <add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/> </handlers> 

并在<system.web>

 <httpHandlers> <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> </httpHandlers> 

我尝试设置pathelmah.axd和简单~/elmah elmah.axd 。 所有仍然给同样的错误,仍然在当地工作,但不是在生产。

编辑:它实际上也有效当我远程进入服务器,并通过浏览器访问它(不使用本地,但实际的网站地址)。 那么我没有什么权限? 看起来像是在服务器级别。

您需要启用Elmah进行远程访问,方法是将以下configuration设置添加到web.config文件中的<elmah>部分。 此值的默认设置为false,仅允许localhost,因此它是在Visual Studio中在本地计算机上工作的原因。

  <elmah> <security allowRemoteAccess="true"/> </elmah> 

我似乎总是把自己忘记,花几分钟时间挠挠脑袋;)

确保HttpHandler是在web.config文件的webServer部分中定义的。

 <system.webServer> <httpHandlers> <add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/> </httpHandlers> </system.webServer>