1

起動時とシャットダウン時にイベントログレコードを記録するサービスアプリケーションがあります。

アプリケーションを頻繁に再構築し、次にホストマシンで実行可能ファイルを再構築します。そして、ここに問題があります。サービスがシャットダウンした後、Windowsイベントログサービス(イベントログビューアではない)が実行可能ファイルへのオープンハンドルを保持しているため、更新できません。

  • 実行可能ファイルにイベントログメッセージが埋め込まれているので、移動できますが、更新の問題を別のファイルに移動するだけです。

  • ダブルチェックし、:: RegisterEventSource /::DeregisterEventSourceを正しくペアリングしました。

誰かがこの問題に遭遇しましたか?

4

3 に答える 3

2

私もこの問題に遭遇したので、私の経験のいくつかを追加するだけです。

Windows 2008 Serviceシステム(2003 Serverではこれは表示されていません)があり、サービスを停止すると、svchost.exeのインスタンスがサービス実行可能ファイル(vmmap.exeまたはProcess Hackerを使用して表示)をロードし、削除されないようにします/アンインストール/インストール中に上書きされます。svchost.exeのインスタンスは、DHCPクライアント(Dhcp)、TCP / IP NetBIOSヘルパー(lmhosts)、およびWindowsイベントログ(EventLog)サービスを実行しています。

この例では、サービスを実行可能にするためのレジストリエントリをイベントソースとして作成しました。(なぜこれを行うのか、またはこれを行うべきかどうかは正確にはわかりませんが)。

経験的に、サービスを停止する前にそのレジストリエントリを削除すると、実行可能ファイルはsvchost.exeによってロードされず、すべて問題ありません。サービスがすでに停止されており、実行可能ファイルがsvchost.exeによってロードされている場合は、イベントログサービスを再起動する(またはプロセスを強制終了する)と、実行可能ファイルも解放されます。

私たちのサービスは正常に動作していないか(おそらく64ビットOSで32ビットプロセスであるという副作用ですか?)、正しくインストールされていないと思いますが、まだ問題を特定していません。

更新:この問題はHPシステム(DellやIBMではなく)でのみ発生しているようですが、これは興味深いことです。HP固有の管理コンポーネントがインストールされているので、おそらくそのうちの1つが何らかの方法で動作を変更していますか?

于 2013-07-15T17:47:46.283 に答える
1

私もこの問題に遭遇しました。私の場合、nxlogサービスはログを読み取ります。イベントソースファイルを置き換える前に、nxlogサービスを停止するだけです。

于 2016-06-08T13:43:47.227 に答える
0

おそらくイベントログビューアだと思います。ビューアを閉じれば大丈夫です。

于 2011-03-02T17:43:01.173 に答える