我试图将一堆ASP.Net MVC网站迁移到Azure。在此过程中,我注意到Elmah无法在任何这些网站上运行。我创建了最简单的案例来测试,发现它也没有用。
在Azure上,我创建了一个"标准层"网站,我没有进一步配置它。
在Visual Studio中,我创建了一个新的ASP.NET MVC网站。我添加了Nuget" Elmah"包。我将web.config中的一行更改为:
<security allowRemoteAccess="true" />
这项更改是为了让我查看elmah页面。 (我知道不安全,但只是试图证明一点)
我还更改了控制器,以便单击about菜单会生成异常。否则这是一个通用的MVC网站。本地一切都很好,我可以生成异常并看到它显示在Elmah.axd页面上,但是一旦我将网站部署到Azure,Elmah页面上就不会出现任何数据。
我已将样本保留在线以供演示之用:
接下来转到:http://testelmah.azurewebsites.net然后点击。您应该会看到一条错误消息,指出发生了异常。
感到困惑的是Elmah没有工作
我花了几个小时搜索解决方案,似乎Elmah只适用于Azure中的其他所有人。我错过了什么?
答案 0 :(得分:5)
我认为您的问题是,您正在运行启用自定义错误和/或使用HandleErrorAttribute。在localhost上运行时可能会出现黄色的死亡屏幕,在Azure上运行时可能会出现“漂亮”的错误页面。您可以在web.release.config中配置自定义错误。
您应该考虑使用Elmah.MVC NuGet包,因为这可以帮助您在使用自定义错误和ASP.NET MVC的HandleError属性运行时记录ELMAH中的错误。