Azure 网站中的 Elmah

Elmah in an Azure Web Site

我正在尝试将一堆 ASP.Net MVC 网站迁移到 Azure。在此过程中,我注意到 Elmah 在任何这些网站上都不起作用。我创建了最简单的案例来进行测试,但发现它也不起作用。

我在 Azure 上创建了一个 "standard tier" 网站,我没有对其进行进一步配置。

在 Visual studio 中,我创建了一个新的 ASP.NET MVC 网站。我添加了 Nuget "Elmah" 包。我将 web.config 中的一行更改为:

<security allowRemoteAccess="true" />

进行此更改是为了让我能够查看 elmah 页面。 (我知道不安全,但只是想证明一点)

我还更改了控制器,因此单击“关于”菜单会产生异常。否则这是一个通用的 MVC 网站。在本地一切正常,我可以生成异常并看到它显示在 Elmah.axd 页面上,但是一旦我将站点部署到 Azure,Elmah 页面上就不会出现任何数据。

出于演示目的,我已将示例留在网上:

  1. 开始于:http://testelmah.azurewebsites.net/elmah.axd

  2. 接下来转到:http://testelmah.azurewebsites.net 并单击关于。您应该会看到一条指示发生异常的错误消息。

  3. 返回:http://testelmah.azurewebsites.net/elmah.axd

  4. 困惑于 Elmah 没有工作

我花了几个小时在谷歌上搜索解决方案,Elmah 似乎只适用于 Azure 中的其他所有人。我错过了什么?

我认为您的问题是,您使用 HandleErrorAttribute 运行 启用了自定义错误 and/or。在本地主机上 运行 时,您可能会看到死机黄屏,而在 Azure 上 运行 时,您可能会看到 "nice" 错误页面。您的自定义错误可能在 web.release.config.

中配置

您应该考虑使用 Elmah.MVC NuGet 包,因为当 运行 自定义错误和来自 ASP.NET MVC 的 HandleError 属性时,这有助于您在 ELMAH 中记录错误。