1

使用云服务和 Azure 2.0 SDK,我希望将我的 ASP.NET 错误记录到 Azure 诊断服务。

在 Visual Studio 中,诊断摘要下有一个名为“Windows Azure 应用程序日志”和“事件日志”的部分

当我遇到错误时,我只看到标准的 500 错误页面,但没有任何日志可以显示它。

我不想看到黄屏死机(因为这是面向客户的页面)

我希望我可以打开其中一个 Azure 表或 Blob,并查看我的 ASP.NET 错误(例如空引用异常、实体框架错误等)的堆栈跟踪

如何将其配置为与 Azure SDK 2.0 一起使用?

4

2 回答 2

1
  1. 在 Azure 云服务 Web 角色项目中,打开 Web 角色的属性。
  2. 打开Enable Diagnostics并选择Custom plan,然后单击Edit
  3. 日志目录选项卡中选择所需的传输周期,然后单击确定
  4. 在解决方案资源管理器中,展开您的 Web 角色的树节点,然后打开diagnostics.wadcfg.
  5. 将此行添加到Directories元素:

    <FailedRequestLogs container="wad-frq" directoryQuotaInMB="512" />
    
  6. web.config中,在元素下添加以下system.webServer内容:

    <tracing>
      <traceFailedRequests>
        <add path="*">
          <traceAreas>
            <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
            <add provider="WWW Server" areas="Authentication, Security, Filter, StaticFile, CGI, Compression, Cache, RequestNotifications, Module" verbosity="Verbose" />
          </traceAreas>
          <failureDefinitions statusCodes="400-599" />
        </add>
      </traceFailedRequests>
    </tracing>
    

diagnostics.wadcfg重新部署到现有 Web 角色实例时,不会应用对本地项目的更改。但是,部署到新的暂存实例然后进行交换可以正常工作。


这方面的文档是零散的:

于 2014-11-09T12:26:44.417 回答
-1

Windows Azure 诊断在其诊断中不包括堆栈跟踪。

但是,您可以使用与常规 Web 应用程序(又名System.Diagnostics.Trace)相同的跟踪策略。此页面为您提供了有关如何在 Windows Azure 中使用它们的更多信息,或使用Elmah之类的库(这是一个很棒的日志库,可为您提供有关错误的大量信息,包括 FORM 值!)。

希望能帮助到你。

于 2013-05-25T02:11:11.877 回答