Ent Lib 5を使用してイベントログにログを記録しています.Windows 7マシンでアプリケーションを実行するとすべて動作します。しかし、WindowsServer 2008に展開すると、ロギングが停止するだけです。イベントログには何も書き込まれません。両方のマシンでEnt Lib 5がインストールされています。エンタープライズライブラリがログに記録されない
あなたはどう思いますか?何が問題なの?
Ent Lib 5を使用してイベントログにログを記録しています.Windows 7マシンでアプリケーションを実行するとすべて動作します。しかし、WindowsServer 2008に展開すると、ロギングが停止するだけです。イベントログには何も書き込まれません。両方のマシンでEnt Lib 5がインストールされています。エンタープライズライブラリがログに記録されない
あなたはどう思いますか?何が問題なの?
これは、Windowsイベントログにロギングする場合によく起こります。これは、イベントソースがWindows Server 2008に登録されていないことが原因である可能性があります。devマシンで実行すると、ほとんどの開発者のように管理者権限を持っている可能性が高く、.NETフレームワークは初めてイベントソースを自動的に作成しますあなたはそれらを使用します。管理者権限のないアプリケーションは、イベントソースを作成できないため、ロギングに失敗します。 Loggingブロックの哲学は気を散らすが、何もログに記録されないため、アプリケーションは引き続き実行される。
アプリケーションをデプロイするときは、インストーラークラスを組み込んでイベントソースを作成する必要があります。開発には、Windows PowerShellを使用するという簡単な解決策があります。昇格したPowerShellプロセスを実行し、次のコマンドを使用します。
[System.Diagnostics.EventLog]::CreateEventSource(sourceName, logName)
特定のログのイベントソースを作成する。
また、EntLibアセンブリにInstallUtilを実行してください。EntLibに付属するInstallServices.batがあります。
この詳細についてはCodeplex discussionをご覧ください。
regeditを使用して手動でイベントソースを追加することもできます。
これを参照してくださいMSDN article。
これを行うためにpowershellスクリプトを作成しました。 - 彼らがシステム特権を実行していることを確認してください - 彼らは ない場合はユーザーに警告 - イベントログが が存在するかどうかを確認します - それは をしない場合、イベントログを作成します - としてユーザーにメッセージを表示します結果に https://gist.github.com/3668859:RegisterEventLog.ps1 – Dan