0

最近、Windows 2008 r2 サーバーで asp.net 2.0 プロジェクトを .net 4.0 にアップグレードしました。見つかった問題の 1 つは、UNC 共有フォルダーへの File.Exists() 呼び出しです。Windows 2003 サーバー上の .net 2 では問題なく動作していました。コードが行うことは、Windows の偽装を使用して、Web サービスによって作成されたファイルの共有フォルダーにアクセスすることです。Web サービスによって作成されたばかりの共有フォルダーにファイルが存在する場合でも、File.Exists() は false を返すようです。ローカルコードがファイルにアクセスしようとしたときに、Web サービスの File オブジェクトが閉じられていない可能性があると思います。File.Exists メソッドの .net 4 実装でこの問題を修正する方法は、スレッドを数秒間スリープするように設定しようとしましたが、助けがなく、とにかく良い解決策ではありません。

何か案は?

アップデート:

では、while ループを追加して、ファイルが Web サービスによって閉じられるのを待ちます。File.Exits が while ループ中に true を返すようになりました。asp.net 2.0 で問題なく動作するのは興味深いことです。.net 4の実装が異なるのか、サーバーの違いがこの異なる動作を引き起こすのかはわかりません。

4

0 に答える 0