1

クラウド サービスと Azure 2.0 SDK を使用して、ASP.NET エラーを Azure Diagnostics サービスに記録したいと考えています。

Visual Studio では、[診断の概要] の下に、"Windows Azure アプリケーション ログ" および "イベント ログ" というセクションがあります。

エラーが発生すると、標準の 500 エラー ページしか表示されませんが、それを表示するログはどこにもありません。

死の黄色い画面を見たくない (これは顧客向けページであるため)

これらの Azure テーブルまたは BLOB のいずれかを開いて、ASP.NET エラー (Null 参照例外、エンティティ フレームワーク エラーなど) のスタック トレースを確認できることを期待します。

これを Azure SDK 2.0 で動作するように構成するにはどうすればよいですか?

4

2 に答える 2

1
  1. Azure Cloud Services の Web ロール プロジェクトで、Web ロールのプロパティを開きます。
  2. [診断を有効にする] をオンにして [カスタム プラン]を選択し、[編集] をクリックします。
  3. [ログ ディレクトリ] タブから、目的の転送期間を選択し、[ OK ] をクリックします。
  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 に答える