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

我安装了elmah.mvc nuget软件包,并保留了默认配置,除非设置了发送电子邮件并将其插入SQL数据库的能力。

使用Visual Studio主机时,在本地计算机上,我可以打开我的应用程序并访问/ elmah可以查看错误报告。 但是,当我尝试在生产环境中访问/ elmah时,出现两个错误,首先出现elmah.axd服务器错误。 然后,在我的电子邮件(来自Elmah)中,我得到:

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

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

根据以下答案,我尝试了以下操作:

elmah.axd

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

并且在elmah.axd

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

我尝试将路径设置为elmah.axd~/elmah。所有路径仍然给出相同的错误,并且仍在本地运行,但不适用于生产环境。

编辑:当我远程访问服务器并通过浏览器访问服务器时,它实际上也起作用(不使用本地主机,而是实际站点地址)。 那我没有什么许可? 好像是在服务器级别。

2个解决方案
118 votes

您需要通过将以下配置设置添加到web.config文件中的<elmah>部分来启用Elmah进行远程访问。 此值的默认设置为false,这仅允许localhost,因此为什么要在Visual Studio中在本地计算机上使用它。

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

我似乎总是忘记自己,花了几分钟时间挠头;)

Paige Cook answered 2019-11-19T02:47:11Z
1 votes

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

<system.webServer>
  <httpHandlers>
    <add name="elmah" verb="GET" path="elmah.axd"  type="Elmah.ErrorLogPageFactory, Elmah"/>
  </httpHandlers>
</system.webServer>
scottm answered 2019-11-19T02:47:35Z
translate from https://stackoverflow.com:/questions/11674464/cant-access-elmah-on-production-server-with-elmah-mvc