- - PR -
イベントログへの書き込み
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-05-20 10:11
お世話さまです。
ASP.NETでTry〜Catchで例外処理が発生したらOSのイベントログに書き込みを行いたいのですが "要求されたレジストリ アクセスは許可されていません。" とエラーが返ってきてしまいます。何か設定が必要なのでしょうか?解決方法や参考になるサイトをご存知でしたらぜひ教えてください。下記は書き込みを行っている部分のソースです。 EventLog.WriteEntry("SecondSource", "Writing warning to event log.", _ EventLogEntryType.Error) | ||||
|
投稿日時: 2003-05-20 10:52
こんにちは。
ASP.NETは「USER」権限なので、イベントログに書き込むためのレジストリエントリにアクセスできないのです。 MSDNライブラリ(ヘルプ)の目次で、 「.NET開発→.NET開発→Visual Studio .NET→製品ドキュメント→Visual Basic と Visual C#→コンポーネントによるプログラミング→システム監視コンポーネントの作成→アプリケーション、サーバー、およびセキュリティ イベントのログの記録」以下が参考になるでしょうか。 | ||||
|
投稿日時: 2003-05-20 11:24
"SecondSource"名のイベントソースが存在しないのではないでしょうか。
以下のC#のプログラムを実行した後に試して見てください。 Main{ const string LOG_SOURCE = "SecondSource" ; const string sLog = "Application"; if (!EventLog.SourceExists(LOG_SOURCE)) { EventLog.CreateEventSource(LOG_SOURCE,sLog); EventLog.WriteEntry(ERROR_LOG_SOURCE,"SecondSource作成成功"); } } | ||||
|
投稿日時: 2003-05-20 11:43
去年の夏に私も悩んだ記憶があります。
確かイベントソースの作成にはアドミニストレータ権限がいることを覚えています。 ただしイベントソース作成以降はASPNETユーザでも書き込めるようになったと思います。 ですので私は事前にイベントソース作成用のEXEを実行した覚えがあります。 ふぁんさんの書き込みを見て思い出しました。 | ||||
|
投稿日時: 2003-05-20 14:06
aoppです。
WinNT\Microsoft.NET\Framework\<version>\config\machine.configの <processModel userName="machine"を"SYSTEM"に変更すれば、権限付与できます。 他の権限(ファイル更新など)も付与されるので、注意 | ||||
|
投稿日時: 2003-05-20 15:05
Jittaさん、ふぁんさん、FOXさん、AOPPさん返答どうもありがとうございます、大変参考になりました。
アクセスの権限を変更することで書き込みそのものはできたのですがイベントソースを作成する方法を下記のように実装してみたところアクセス許可がないとのエラーが返ってきてしまったのですがこれはイベントソース作成にも権限が関係しているのでしょうか? Const LOG_SOURCE As String = "SecondSource" Const ERROR_LOG_SOURCE As String = "SecondSource" Const sLog As String = "Writing warning to event log." If (Not EventLog.SourceExists(LOG_SOURCE)) Then EventLog.CreateEventSource(LOG_SOURCE, sLog) EventLog.WriteEntry(ERROR_LOG_SOURCE, "SecondSource作成成功") End If | ||||
|
投稿日時: 2003-05-20 15:09
aopp 以下のソース書けました
EventLog eventLog = new EventLog( "Application", ".", "名称" ); eventLog.WriteEntry( "メッセージ", EventLogEntryType.Error ); | ||||
|
投稿日時: 2003-05-20 15:58
アプリケーションイベントログに関しては、誰にでも(world)書き込み権があるようなのですが・・・
カスタム イベント ログの作成と削除 イベント ログへのアクセス権 過去に作ったもの: ' InitializeComponent() 呼び出しの後に初期化を追加します。 If Not EventLog.SourceExists("Checker") Then EventLog.CreateEventSource("Checker", "Logs") End If ServiceEventLog.Source = "Checker" ServiceEventLog.Log = "Logs" 〜中略〜 Me.EventLog.WriteEntry(msg.ToString, EventLogEntryType.Error) |