[英]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.

然后继续进行多行堆栈跟踪,其中任何一行都靠近我的代码。
这是怎么回事? 我刚刚添加了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.