Ich habe den ganzen Tag hart daran gearbeitet und stecke nun fest. Heute Morgen haben mich unsere asiatischen Kollegen angerufen, weil ein SolidWorks-Add-In für unser Produktdatenmanagementsystem nicht mit der lokalen Hauptanwendung kommunizieren konnte. Das Problem betrifft Endbenutzercomputer in einer Windows-Domäne. Wir haben die Dienstprogramme READPIPE und MAKEPIPE aus der SQL Server-Toolbox verwendet, um herauszufinden, dass das zugrunde liegende Problem die Windows-Pipe-Funktion war.
- Das MAKEPIPE-Dienstprogramm erstellt eine Pipe und wartet auf einen Client. Das READPIPE-Dienstprogramm gibt zurück: „Pipe konnte nicht geöffnet werden. Status 53.“ Lauthttp://support.microsoft.com/kb/110905es bedeutet, dass der Netzwerkname nicht gefunden wurde. Auf meinem lokalen Computer senden die Pipes problemlos ein „Hallo“ von READPIPE an MAKEPIPE.
- Der Serverprozess, der Named Pipes aktiviert, wird ausgeführt.
- Die Einstellungen unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\Parameters sehen in Ordnung aus. Keine Pipes-Firewall-Einstellung.
- Das Problem betrifft einige Benutzer, aber nicht alle. Wir haben keine Änderungen an den Domänengruppen vorgenommen, mit Ausnahme einiger Netzwerkfreigabegruppen.
- Ich habe mich als Administrator angemeldet und die Pipes funktionieren immer noch nicht.
Jede Hilfe ist willkommen! Danke.
Antwort1
Ich habe 1,5 Tage gebraucht, um es für jeden Fall herauszufinden. Hier zur Dokumentation.
Problembeschreibung
- Drag&Drop in Anwendungen funktioniert nicht.
- Die Interprozesskommunikation zB zwischen Haupt-App und Add-Ins funktioniert nicht.
Ursachen / Hintergründe
Die Interprozesskommunikation wird für einige Anwendungen über Windows Named Pipes implementiert (nicht zu verwechseln mit UNIX Style Pipes). Siehe MSDN-Dokumentation:http://msdn.microsoft.com/en-us/library/aa365590.aspx
Es kann verschiedene Ursachen dafür geben, dass die Windows-Namepipes nicht funktionieren. Um zu überprüfen, ob die Pipes die Ursache des Problems sind, können die Tools MAKEPIPE und READPIPE verwendet werden. Dieser KB-Artikel beschreibt das Testverfahren:http://support.microsoft.com/kb/68941 Der Prozess-Explorer des Sysinternals-Tools kann auch hilfreich sein, um nachzuschlagen, welche Pipes derzeit geöffnet sind. Verwenden Sie die Option „Suchen -> Handle oder DLL suchen ...“ und geben Sie das Muster „\Device\NamedPipe\“ ein. Es wird Ihnen angezeigt, welche Prozesse welche Pipes geöffnet haben.http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Fehlerbehebung
Ursache 1: Die Anwendung wird durch die Pipes-Firewall blockiert
Windows kann Anwendungen daran hindern, Named Pipes zu verwenden. Diese Firewall ist normalerweise nicht aktiviert und wird über die Registrierung konfiguriert. Den MS-Support-Artikel finden Sie hier:http://support.microsoft.com/kb/925890. Überprüfen Sie, dass die Pipes-Firewall nicht aktiviert ist, oder fügen Sie Keytech und alle Add-Ins zur Liste der zulässigen Anwendungen hinzu.
Ursache 2: Der Datei- und Druckerfreigabedienst ist nicht aktiviert.
Named Pipes werden von dem Prozess aktiviert, der auch die Datei- und Druckerfreigabe steuert. Überprüfen Sie mithilfe des Windows-Dienste-Tools, ob dieser Prozess ausgeführt wird. Der Dienstname wird in der Diensteliste als „Server“ angezeigt. Der Dienstname lautet LanmanServer und die EXE lautet C:\Windows\system32\svchost.exe -k netsvcs
Ursache 3: Die Windows-Firewall blockiert LanmanServer
Die Windows-Firewall kann Named Pipes blockieren, selbst wenn diese nur für die Interprozesskommunikation auf demselben Computer verwendet werden. Insbesondere Domänen- und lokale Firewallregeln können einen Konflikt verursachen. Zwei Einträge in der Liste „Zugelassene Programme der Windows-Firewall“ weisen auf einen Konflikt hin. In den meisten Fällen kann dieses Problem mithilfe des Fensters „Firewallstatus prüfen“ gelöst werden. Wenn in diesem Fenster eine Option zum Festlegen empfohlener Firewallregeln angezeigt wird, können die Pipes häufig mithilfe dieser Option entsperrt werden. In Kombination mit Domänen-Firewallregeln ist es manchmal erforderlich, den PC zuerst aus der Domäne auszugliedern und dann den Datei- und Druckerfreigabedienst zuzulassen.