1

AssemblyInfo.csで監視するように設定されたlog4net参照とXmlConfiguratorを持つ2つのサービスがあります。

ローカル マシンで両方のサービスを実行すると、両方が別々のディレクトリから実行され、ローカル コピーが Log4Net dll に設定されます。どちらのサービスも問題なくログに記録されます。

サービスを本番環境にプッシュすると、両方が同じディレクトリに置かれ(これについては何も言えません)、私が見ている動作は奇妙です。1 つのサービスが開始された場合、ログは正常に記録されますが、他のサービスはまったくログに記録されません。見知らぬ人、両方をシャットダウンして2番目を開始すると、正常にログに記録されますが、最初のものはログに記録されません。

サービスは一度に 1 つしかログに記録できないと想定していますが、これらは別個のサービスであるため、これは意味がないようです。

ここで何が起こっているのか知っている人はいますか?

4

2 に答える 2

1

最初のプロセスが DLL をロックし、他のプロセスが同じファイルをアプリ ドメインにロードできないようにしているようです。ふざけて、DLL のコピーを作成し、名前を変更してから、2 番目のサービスがその別のファイルを参照するようにしてみましたか? おそらく次のようなものです:

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net2nd" />
于 2013-08-16T17:44:53.397 に答える