繁体   English   中英

部署在Azure上的MVC站点在访问elmah时返回错误

[英]MVC site deployed on Azure returns error when accessing elmah

我有一个MVC WebAPI站点,安装了最新的ELMAH.MVC NuGet包。 在Visual Studio下,我可以访问

http://localhost:1234/elmah

并获取错误日志,就像我应该能够。

当我将它部署到Azure时,它会在我这样做时抛出错误。 幸运的是,Elmah将错误记录到App_Data中的XmlError日志中,我发现了这个:

<error errorId="92ad3ee1-3fd5-449a-8cb4-0474aa771aab" 
application="/LM/W3SVC/417796901/ROOT" 
host="RD00155D430783" type="System.Web.HttpException"
message="Server cannot set status after HTTP headers have been sent."
source="System.Web" 
detail="System.Web.HttpException (0x80004005): Server cannot set status after HTTP headers have been sent.&#xD;&#xA;

然后继续进行多行堆栈跟踪,其中任何一行都靠近我的代码。

这是怎么回事? 我刚刚添加了Elmah.MVC nuget包,并对Web.Config进行了以下更改

  <elmah>
  <security allowRemoteAccess="yes"/>
      <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
  </elmah>
  <location path="elmah.axd">
    <system.web>
    <allow roles="*" />
    </system.web>
   </location>

它不会靠近我的任何控制器,所以我无法控制何时设置或发送Http状态标头。

谢谢你的帮助。

itanex是对的! 将空文本文件(即placeholder.txt)放在App_Data文件夹中,并将其标记为“内容”和“始终复制” - 这将确保创建App_Data文件夹。 另外,正如Simon指出的那样,正确的路径(基于您的配置)是/elmah.axd

通过https://stackoverflow.com/a/11680786/1037948

允许远程访问:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM