9

私は以下を使用してネットワーク経由でディレクトリを開いています:

System.Diagnostics.Process.Start(path); // path = UNC network path

ただし、2つのネットワークパスがあります。

\\This_PC_Does_Not_Exist\dir

\\This_PC_Is_Turned_Off\dir

最初の1つは、ネットワークPCが存在しないことを確認するのに非常に高速で、2つ目は約2分かかるのはなぜですか。私が間違っていなければ、Windows環境でネットワークパスに到達できないかどうかを判断するのに30秒かかります。

この場合、なぜこれほど時間がかかるのでしょうか。また、PCがオフになっているという情報を高速化する方法を教えてください。

4

2 に答える 2

7

ファイルをロードするには、Windowsは最初にマシンへのファイル共有接続を確立する必要があります。まず、UNC名を検索してIPアドレスを取得します。マシンが存在しない場合、IPアドレスを取得できず、すぐに失敗します(最初の例のように)。(2番目の例のように)存在する場合、Windowsは接続を試行する必要があります。

では、タイムアウトが30秒であると想定されているのに、なぜ2分かかるのでしょうか。1つの可能性は、それが数回再試行することです。もう1つの可能性は、異なるネットワークプロトコルがあり、それぞれを試す必要があることです。

于 2011-09-29T15:20:55.423 に答える
1

コンピューターの電源がオンになっているかどうかを確認するより速い方法は、コンピューターにpingを実行することです。必要なタイムアウトを指定します。数秒以内に応答があるはずです...

応答が遅いということは、電源がオフになっているコンピューターの名前がまだネットワークで認識されており、IPに関連付けられていることと関係があると思います。次に、コンピュータがそこにあるはずなので、より長いタイムアウトが選択されます...

于 2011-09-29T15:20:20.870 に答える