1

継続的インテグレーション サーバー (TeamCity) でこのエラーが発生することがあります。

Unable to save config to file '...\web.config'.

これはビルドの 10% 未満で、さまざまなビルド エージェントで発生するため、パーミッションの問題ではないと思います。

別のサービスの web.config ファイルに書き込む WCF サービスの呼び出しに失敗するテスト。これは THREAD-SAFEではありませんが、私の知る限り、TeamCity はテストを並行して実行しません。そうしないと、他の多くのテストが常に失敗します。

構成サービスを呼び出す多くのスレッドを生成してエラーを再現しようとしましたが、別の例外が発生しました。

The process cannot access the file '...\web.config' because it is being used 
by another process

誰かが問題の原因を見つけるのを手伝ってくれるので、少なくとも安定したテストで再現できますか?

4

1 に答える 1

0

web.config のファイル ロックが時間内に解放されていません。テスト A によって web.config への書き込みが発生した場合、テストが完了するまでに web.config のファイル ロックが解除されるとは限りません。テスト B を実行して web.config に書き込もうとすると、ロックが残っている可能性があります。通常、ロックはすぐに解放されるため、あまり発生する可能性はありません。ただし、たまに発生するため、10% の失敗率が発生する可能性があります。

web.config への書き込み時に try catch ブロックを使用し、例外が発生したときに書き込みを再試行します。これは 100% 信頼できるわけではないため、カスタム ファイル ロックを検討することをお勧めします。

于 2012-12-15T06:34:54.757 に答える