我正在尝试将一堆 ASP.Net MVC 网站迁移到 Azure。在此过程中,我注意到 Elmah 无法在任何这些网站上运行。我创建了最简单的案例进行测试,发现它也不起作用。
在 Azure 上,我创建了一个“标准层”网站,我没有对其进行进一步配置。
在 Visual Studio 中,我创建了一个新的 ASP.NET MVC 网站。我添加了 Nuget“Elmah”包。我将 web.config 中的一行更改为:
<security allowRemoteAccess="true" />
进行此更改是为了允许我查看 elmah 页面。 (我知道不安全,但只是想证明一点)
我还更改了 Controller ,以便单击“关于”菜单会生成异常。否则,这是一个通用的 MVC 网站。在本地,一切都运行良好,我可以生成异常并看到它显示在 Elmah.axd 页面上,但是一旦我将站点部署到 Azure,Elmah 页面上就不会出现任何数据。
为了演示目的,我已将示例留在网上:
下一步转到:http://testelmah.azurewebsites.net并点击关于。您应该会看到一条错误消息,指示发生了异常。
对 Elmah 不工作感到困惑
我花了几个小时在谷歌上搜索解决方案,看来 Elmah 只适用于 Azure 中的其他人。我错过了什么?
最佳答案
我认为您的问题是,您在启用自定义错误和/或使用 HandleErrorAttribute 的情况下运行。在 localhost 上运行时可能会出现蓝屏死机,在 Azure 上运行时可能会出现“nice”错误页面。您的自定义错误可以在 web.release.config 中配置。
您应该考虑使用 Elmah.MVC NuGet 包,因为这可以帮助您在使用自定义错误和 ASP.NET MVC 中的 HandleError 属性运行时在 ELMAH 中记录错误。
关于asp.net-mvc - Azure 网站中的 Elmah,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28144662/