使用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>