C # nicht erreichbaren Netzwerkpfad mit Process.Start () öffnen

8

Ich öffne Verzeichnisse über das Netzwerk mit:

%Vor%

Aber mit 2 Netzwerkpfaden:

%Vor%

Wie kommt es zuerst, dass man sehr schnell braucht, um zu verifizieren, dass der Netzwerk-PC nicht existiert, während der zweite ungefähr zwei Minuten dauert? Wenn ich mich nicht irre, ist es in der Windows-Umgebung 30 Sekunden, um festzustellen, ob der Netzwerkpfad nicht erreichbar ist.

Warum dauert es in diesem Fall so lange und wie beschleunigt man die Information, dass der PC ausgeschaltet ist?

    
yosh 29.09.2011, 15:03
quelle

2 Antworten

6

Um die Datei zu laden, muss Windows zuerst eine Dateifreigabeverbindung zum Computer herstellen. Zuerst wird der UNC-Name angezeigt, um die IP-Adresse zu erhalten. Wenn die Maschine nicht existiert, kann sie keine IP-Adresse erhalten, und sie schlägt schnell fehl (wie im ersten Beispiel). Wenn es (wie im zweiten Beispiel) vorhanden ist, muss Windows versuchen, eine Verbindung herzustellen.

Warum dauert es also zwei Minuten, wenn die Auszeit 30 Sekunden betragen soll? Eine Möglichkeit ist, dass es ein paar Mal wiederholt. Eine andere Möglichkeit ist, dass Sie verschiedene Netzwerkprotokolle haben und jedes davon versuchen muss.

    
Gabe 29.09.2011, 15:20
quelle
1

Ein schnellerer Weg, um zu überprüfen, ob der Computer eingeschaltet ist, wäre ein Ping an den Computer. Geben Sie ein beliebiges Timeout an. Es sollte innerhalb weniger Sekunden eine Antwort geben ...

Ich nehme an, die langsame Antwort hat etwas damit zu tun, dass der Name des ausgeschalteten Rechners im Netzwerk noch bekannt ist und mit einer IP verbunden ist. Dann wird ein längeres Timeout gewählt, da der Computer da sein sollte ...

    
erikH 29.09.2011 15:20
quelle