File.Move System.IO.IOException: "この時点でこのリモートコンピュータに接続できなくなりましたコンピュータが受け入れることができる数の接続がすでに存在しているためです。File.Move System.IO.IOException: "このリモートコンピュータに接続できません..."
私はプロセスがSYSアカウントで実行されています。ローカルHD上のファイルを処理し、偽装を使用してドメイン上のリモートドライブに移動します。
編集、コードサンプルを追加:
方法ベローズが繰り返し呼び出される(偽装私は偽装に使用するユーティリティクラスであり、これは問題とは無関係です)。
private void moveFileUsingImpersonation(string srcFilePath, string dstFilePath, string userName, string passWord)
{
WindowsImpersonationContext wic = null;
// move it to destination
try
{
wic = Impersonation.Impersonate(userName, passWord);
if (wic != null)
{
File.Move(srcFilePath, dstFilePath);
}
else
{
Console.WriteLine("moveFileUsingImpersonation, Failure to impersonate!");
}
}
catch(Exception ex)
{
Console.WriteLine("moveFileUsingImpersonation, Exception={0}", ex.ToString());
}
finally
{
Impersonation.UndoImpersonate(wic);
}
}
編集、追加コードサンプル。
プロセスがXPマシンで実行されていて、リモートドライブがXPまたはWin7マシンのいずれかにある場合、File.Moveの呼び出しはうまく動作し、必要なファイルを移動します。ただし、プロセスがWin7で実行されていて、リモートドライブがWin7マシン上にある場合は、20個のファイルが移動された後で前述の例外がスローされます。
私も同じ結果で、MOVEFILE_REPLACE_EXISTING & MOVEFILE_COPY_ALLOWED & MOVEFILE_WRITE_THROUGHフラグでのWin32 API MoveFileExを呼び出すために試してみた - ERROR_REQ_NOT_ACCEP 71(0x47)。
Win7では、File.Moveを呼び出すことによる基本的な接続が正しく終了していないようです。
これを克服する方法はありますか?
私はここで何が欠けていますか?
おかげで、あなたのコードに基づいて、宜蘭
ここでコードサンプルなしであなたが紛失していることを伝えるのは少し難しいです。何を試しましたか? http://mattgemmell.com/2008/12/08/what-have-you-tried/ – David
@David Stratton、ご回答いただきありがとうございます。サンプルコードが追加されました。 –