0

ASP.NET 2.0 アプリケーション (前任者によって作成された) を使用しています。ユーザーは AD 資格情報を使用してログインし、アプリ内で行われるすべての操作でそれらの資格情報が使用されます。イベント ログとは関係のないアプリケーションのページを変更したところ、ユーザーに次のエラーが表示されました。 ハンドルが無効なエラー

global.asax ファイルからの関連コードは次のとおりです。

public void LogException(Exception e)
    {
        string exceptionXml = RenderException(e, true);

        _EventLog.WriteEntry("Exception of type " + e.GetType().FullName + " occurred.\n\n" + exceptionXml, EventLogEntryType.Error);
    }

RenderException() は、例外 XML を単純な文字列に入れ、空白を削除します。

このエラーを取り除く方法に途方に暮れています。iisreset を使用して Web サイトを再公開しようとしました。アプリプールをフラッシュして、Webサーバー(2k3 w / iis 6.0)を再起動しようとしました。また、トップレベルのイベント ログ キーのレジストリのアクセス許可を変更しようとしました。このエラーを取り除く方法を教えてもらえますか? 私のコンピューターでは発生しないため、複製するのは非常に困難です。また、使用するブラウザは問わないようです。以前のバージョンは、このエラーが発生した同じ人に対して機能します。

4

2 に答える 2

0

デフォルトでは、ASPNETユーザーは既存のイベント ログ カテゴリにアクセスできません。

イベント ログにメッセージを書き込みたい場合は、独自のカテゴリを作成する必要があります。

  1. RegEdit を起動
  2. HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\EventLog\ に移動します。
  3. メニューから [編集] -> [権限] を選択します。
  4. [追加] ボタンをクリックし、ASPNET と記述します。(ASP.NET が別のユーザー ID で実行されている場合は、代わりにその ID を使用してください)
  5. [OK] をクリックします。
  6. リストから新しく追加されたユーザーを選択します (既定では ASP.NET マシン ユーザー)。
  7. [許可] 列の [フル コントロール] をクリックします。
  8. [OK] をクリックします。

アプリケーションを実行しているユーザーが正しいグループ ( IIS_WPGなど) に属していることも確認できます。

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/3648346f-e4f5-474b-86c7-5a86e85fa1ff.mspx?mfr=true

于 2013-08-26T17:24:29.130 に答える