- PR -

イベントログの「説明」部分の内容について

1
投稿者投稿内容
.net
ベテラン
会議室デビュー日: 2005/04/11
投稿数: 95
投稿日時: 2006-07-13 09:44

お疲れ様です。
いつもお世話になっております。

VB.net2003にてWindowsアプリの開発を行っております。

さっそくの質問なのですが、アプリにて重大なエラーが発生した場合に
イベントログを出力しているのですが、
出力された内容(説明の箇所)に下記のように、長々とメッセージが表示された
後にアプリで設定したメッセージ内容が表示されてしまいます。

アプリより設定したメッセージ内容のみにすることは可能でしょうか???

たぶん、「イベント ID (14) (ソース SSS 内) に関する説明が見つかりませんでした。」の通りだとは思います。
この、イベントID部には、開発中のシステムの規約に準じたIDを設定したいのです。

よろしくお願いいたします。

------------------------------------------------------------------------------
イベント ID (14) (ソース SSS 内) に関する説明が見つかりませんでした。リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。この説明を取得するために /AUXSOURCE= フラグを使用することができる可能性があります。詳細については、ヘルプとサポートを参照してください。次の情報はイベントの一部です:

アプリより設定したメッセージ内容・・・。

------------------------------------------------------------------------------
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-07-13 10:07
...EventLogEntryTypeを変えてみるとか、イベント識別子を変えてみるとかしてみました?

 実は僕も同じことを言われたことがあります。で、解決策は...黙殺。
こういうもんだと納得させ、慣れさす!これで解決?
macoto
常連さん
会議室デビュー日: 2006/02/15
投稿数: 25
お住まい・勤務地: 東京都/東京都
投稿日時: 2006-07-13 10:45
イベントソースが無いとそのような表示になると思います。
ただ、EventLog.WriteEntry() を使っていればイベントソースは作りにいくので
そのアプリからレジストリへの書き込み権限がないのでしょうか。

EventLog.CreateEventSource()がうまくいくか確認してみてください。

[ メッセージ編集済み 編集者: macoto 編集日時 2006-07-13 10:46 ]
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-07-13 11:50
こんにちは。

私もタイムリーなことに、ちょうど昨日同じようにイベントログの内容が長々とメッセージが
表示されているのを発見しました。
# 担当が別の人間だったので気づかなかったんですね(と言い訳)

macotoさんの案でいろいろ見てみましたが、EventLog.CreateEventSource でな
んとか解決しました。
ただ、CreateEventSource を実行せずに EventLog.WriteEntry を実行したため
か、すでに謎のイベントソースが作成されていたようで、一度削除してやる必要があるよ
うです。

自分はイミディエイト ウィンドウで
System.Diagnostics.EventLog.DeleteEventSource("XXX");
なんてことをやってみました。

ぜひ試してみてください。
macoto
常連さん
会議室デビュー日: 2006/02/15
投稿数: 25
お住まい・勤務地: 東京都/東京都
投稿日時: 2006-07-13 13:10
引用:

ただ、CreateEventSource を実行せずに EventLog.WriteEntry を実行したため
か、すでに謎のイベントソースが作成されていたようで、一度削除してやる必要があるよ
うです。



謎の状況ですね。(^^;
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemdiagnosticseventlogclasscreateeventsourcetopic1.asp

によると
引用:

メモ コード内でイベント ソースを作成する必要はありません。 Source プロパティで設定したソースが存在しない場合、 WriteEntry メソッドは、イベント ログに書き込む前に、そのソースを作成します。 EventLog インスタンスの Log プロパティを指定しない場合、ログは既定によりアプリケーション ログになります。



EventLog.WriteEntry では勝手にイベントソースを作ってくれますし、私もこれでうまくいってます。

余談ですが、こんなのでハマったこともあります。

[PRB] ASP.NET アプリケーションによりイベント ログに新しいイベント ソースが書き込まれる際に "要求されたレジストリ アクセスは許可されていません" というエラー メッセージが表示される
http://support.microsoft.com/default.aspx?scid=kb;ja;329291

イベントソースの作成権限が無い場合には事前に作成しておくということですね。
.net
ベテラン
会議室デビュー日: 2005/04/11
投稿数: 95
投稿日時: 2006-07-14 10:13

皆様さっそくのご返答ありがとうございます。
返答が遅くなって申し訳ございません。

ちょっと、別件のトラブル対応に追われていまして・・・。
落ち着き次第、試してみようと思います^^

また、結果がわかりましたら、返信したいと思います。
ありがとうございました。
.net
ベテラン
会議室デビュー日: 2005/04/11
投稿数: 95
投稿日時: 2006-07-18 22:38

お疲れ様です。
下記のページを参照に解決できました。
皆様、ご返答ありがとうございました。

http://www.monyo.com/technical/products/evt_messages/
1

スキルアップ/キャリアアップ(JOB@IT)