1

一般向けの Web サイトを作成していますが、要件の 1 つは、すべてのエラー/警告をログ ファイルに書き込むことです。

どこでも try catch ブロックがあり、アプリケーション エラー イベントでエラーをキャッチすることもできます。

一般向けの Web サイトであるため、(毎日新しいファイルを作成しても) ログ ファイルが指数関数的に大きくなり、サイトのパフォーマンスが低下するのではないかと心配しています。ユーザーに影響を与えないように、エラー ファイルを非同期で書き込む方法はありますか?

サンプルやガイダンスは非常に重要です。

私のサイトは ASP.NET Web フォームと c# です。

ありがとう

4

1 に答える 1

2

おすすめ: Tippu 代わりに ELMAH を使用することを強くお勧めします。セットアップは可能な限り簡単で、あなたの人生をとても楽にしてくれます (あなたは二度と独自のロギングプログラムを書くことはありません)。未処理の例外もキャッチします!

設定方法や簡単な設定については、次の Web サイトを参照してください。

エルマ

セキュリティ:知っておかなければならない唯一のことは、ELMAH を保護する必要があるということです。そうしないと、セッションがハイジャックされる可能性があります。ただし、それを確保するのは非常に簡単です。セキュリティの問題とその方法については、次の Web サイトを参照してください。

ASP.NET セッション ハイジャック


5 ~ 10 分のセットアップ手順

  1. Nuget に移動し、「ELMAH SQL」を検索して、「ELMAH on MS SQL Server」をインストールします。

  2. 「App_Readme」フォルダーには、テーブルと 3 つのストアド プロシージャをインストールする「Elmah.SQLServer.sql」ファイルがあります。これも接続したいデータベースで実行します。(ライブ サーバーでストアド プロシージャのアクセス許可を設定して、読み取りと書き込みができるようにする必要があります)

  3. Web 構成に移動します (ELMAH によって自動的に更新されていることがわかります)。リモートアクセスをしたくない場合は、そのままにしておくと、セキュリティが確保されると思います。

リモート アクセスを許可して、どこでもエラー ログ Web サイトを表示できるようにする場合は、true に設定する必要があります。次に、それを保護する必要があります。以下は、管理者に対してそれを保護し、他のすべてのユーザーを拒否します。詳細については、この Web サイトをご覧ください。 Secure ELMAH

<location path="elmah.axd">  
    <system.web>
       <httpHandlers>
            <add verb="POST,GET,HEAD" 
                path="elmah.axd" 
                type="Elmah.ErrorLogPageFactory, Elmah" />
       </httpHandlers>
     <authorization>
        <allow roles="admin" />  
        <deny users="*" />
     </authorization>  
   </system.web>
   <system.webServer>
     <handlers>
         <add name="ELMAH" 
             verb="POST,GET,HEAD"
             path="elmah.axd" 
             type="Elmah.ErrorLogPageFactory, Elmah"
             preCondition="integratedMode" />
     </handlers>
   </system.webServer>

  1. 接続文字列に移動し、「elmah-sqlserver」接続文字列を特定のデータベースにポイントします。

  2. try catches に移動し、catch セクションに「ErrorSignal.FromCurrentContext().Raise(ex);」を追加します。

  3. アプリケーションは、ハンドルされた例外とハンドルされていない例外をキャッチし、エラーを SQL Server テーブルに書き込みます。エラーを表示するには、ブラウザーを開き、「yourwebsite/elmah.axd」に移動します。

  4. エラーが送信されるように設定することもできます。その方法については、次の Web サイトを参照してください。ELMAH メールのセットアップ

上記の番号順は無視してください

于 2012-11-20T04:12:19.443 に答える