Ich habe den ganzen Tag hart daran gearbeitet und stecke 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-Util erstellt eine Pipe und wartet auf einen Client. Das READPIPE-Dienstprogramm gibt Folgendes zurück: "Pipe konnte nicht geöffnet werden. Status 53." Laut http://support.microsoft.com/kb/110905 bedeutet dies, dass der Netzwerkname nicht gefunden wurde. Auf meinem lokalen Computer senden die Pipes ohne Probleme 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 trotzdem funktionieren die Pipes nicht.
Jede Hilfe wird geschätzt! Vielen Dank.
windows
pipe
windows-domain
user152700
quelle
quelle
Antworten:
Benötigte 1,5 Tage, um es für jeden Fall herauszufinden. Hier zur Dokumentation.
Symptome
Ursachen / Hintergrund
Die Interprozesskommunikation wird für einige Apps über Windows-Named Pipes implementiert (nicht zu verwechseln mit UNIX-Pipes). Siehe MSDN-Dokumentation: http://msdn.microsoft.com/en-us/library/aa365590.aspx
Es kann verschiedene Ursachen dafür geben, dass die Windows-Namensleitungen nicht funktionieren. Um zu überprüfen, ob die Rohre 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 Sysinternals-Tool-Prozess-Explorer kann auch hilfreich sein, um festzustellen, welche Pipes derzeit geöffnet sind. Verwenden Sie die Option "Suchen -> Handle oder DLL suchen ..." und geben Sie das Muster "\ Device \ NamedPipe \" ein. Es zeigt Ihnen, welche Prozesse welche Rohre offen haben. http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Fehlerbehebung
Ursache 1: Die Anwendung wird von der 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 . Stellen Sie sicher, 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 Dienst zur gemeinsamen Nutzung von Dateien und Druckern ist nicht aktiviert.
Named Pipes werden durch den Prozess aktiviert, der auch die Datei- und Druckerfreigabe steuert. Überprüfen Sie, ob dieser Prozess mit dem Windows-Diensttool ausgeführt wird. Der Dienstname wird in der Diensteliste als "Server" angezeigt. Der Dienstname lautet LanmanServer und die EXE-Datei lautet C: \ Windows \ system32 \ svchost.exe -k netsvcs
Ursache 3: Die Windows-Firewall blockiert LanmanServer
Die Windows-Firewall kann Named Pipes blockieren, auch wenn sie nur für die Kommunikation zwischen Prozessen auf demselben Computer verwendet werden. Insbesondere Domänen- und lokale Firewallregeln können einen Konflikt verursachen. Zwei Einträge in der Liste "Zulässige Windows-Firewall-Programme" weisen auf einen Konflikt hin. In den meisten Fällen kann dieses Problem mithilfe des Fensters "Firewall-Status überprüfen" behoben werden. Wenn in diesem Fenster eine Option zum Festlegen der empfohlenen Firewall-Regeln angezeigt wird, können die Pipes mit dieser Option häufig entsperrt werden. In Kombination mit Domänen-Firewall-Regeln ist es manchmal erforderlich, den PC zuerst von der Domäne zu trennen und dann den Datei- und Druckerfreigabedienst zuzulassen.
quelle
ServiceHost.Authentication
beschrieben ?