- 12/06/2018
- 7 Minuten zum Lesen
-
- D
- d
- n
- V
- g
-
+1
Möglicherweise tritt beim Herstellen einer Verbindung zu Windows Management Instrumentation (WMI), SQL Server, während einer Remoteverbindung oder für einige Microsoft Management Console (MMC) – Snap-Ins ein Fehler auf, der., Das folgende Bild ist ein Beispiel für einen RPC-Fehler.
Dies ist eine häufig auftretende Fehlermeldung in der Netzwerkwelt und man kann die Hoffnung sehr schnell verlieren, ohne viel zu verstehen, was passiert ‚unter der Haube‘.
Bevor Sie sich mit der Fehlerbehebung für den *RPC – Server unavailable-error befassen, sollten Sie zunächst die Grundlagen des Fehlers verstehen. Es gibt einige wichtige Begriffe zu verstehen:
- Endpoint Mapper – ein Dienst, der auf dem Server abhört und Client-Apps nach Port und UUID zu Server-Apps führt.,
- Tower-beschreibt das RPC-Protokoll, damit Client und Server eine Verbindung aushandeln können.
- Floor-der Inhalt eines Turms mit bestimmten Daten wie Ports, IP-Adressen und Kennungen.
- UUID – eine bekannte GUID, die die RPC-Anwendung. Die UUID ist das, was Sie verwenden, um eine bestimmte Art von RPC-Anwendungskonversation zu sehen, da es wahrscheinlich viele gibt.
- Opnum-der Bezeichner einer Funktion, die der Client ausführen soll. Es ist nur eine Hexadezimalzahl, aber ein guter Netzwerkanalysator übersetzt die Funktion für Sie., Wenn keiner davon weiß, muss es Ihnen Ihr Anwendungsanbieter mitteilen.
- Port-die Kommunikationsendpunkte für die Client-und Serveranwendungen.
- Stub data-die Informationen zu Funktionen und Daten, die zwischen Client und Server ausgetauscht werden. Dies ist die Nutzlast, der wichtige Teil.
Hinweis
Viele der oben genannten Informationen werden bei der Fehlerbehebung verwendet, am wichtigsten ist die dynamische RPC-Portnummer, die Sie im Gespräch mit EPM erhalten.,
Wie die Verbindung funktioniert
Client A möchte einige Funktionen ausführen oder einen Dienst verwenden, der auf dem Remote-Server ausgeführt wird, stellt zuerst die Verbindung mit dem Remote-Server her, indem er einen Drei-Wege-Handshake durchführt.
RPC-Ports können auch aus einem bestimmten Bereich angegeben werden.,
Dynamische RPC-Portzuweisung konfigurieren
Dynamische RPC-Portzuweisung (Remote Procedure Call) wird von Serveranwendungen und Remoteverwaltungsanwendungen wie DHCP-Manager (Dynamic Host Configuration Protocol), Windows Internet Name Service (WINS) usw. verwendet. RPC Dynamic Port Allocation weist das RPC-Programm an, einen bestimmten zufälligen Port in dem für TCP und UDP konfigurierten Bereich zu verwenden, basierend auf der Implementierung des verwendeten Betriebssystems.,
Kunden, die Firewalls verwenden, möchten möglicherweise steuern, welche Ports RPC verwendet, damit ihr Firewall-Router so konfiguriert werden kann, dass nur diese Ports des Transmission Control Protocol (UDP und TCP) weitergeleitet werden. Auf vielen RPC-Servern in Windows können Sie den Serverport in benutzerdefinierten Konfigurationselementen wie Registrierungseinträgen angeben. Wenn Sie einen dedizierten Serverport angeben können, wissen Sie, welcher Datenverkehr zwischen den Hosts über die Firewall fließt, und Sie können definieren, welcher Datenverkehr gezielter zulässig ist.
Als Server-Port wählen Sie bitte einen Port außerhalb des Bereichs, den Sie unten angeben möchten., Eine umfassende Liste der Serverports, die in Windows und wichtigen Microsoft-Produkten verwendet werden, finden Sie im Artikel Dienstübersicht und Netzwerkportanforderungen für Windows.Der Artikel listet auch die RPC-Server auf und welche RPC-Server so konfiguriert werden können, dass benutzerdefinierte Serverports über die von der RPC-Laufzeit angebotenen Einrichtungen hinaus verwendet werden.
Einige Firewalls ermöglichen auch die UUID-Filterung, bei der sie von einer RPC-Endpoint-Mapper-Anforderung für eine RPC-Interface-UUID lernt. Die Antwort hat die Serverportnummer, und eine nachfolgende RPC-Bindung an diesen Port darf dann übergeben werden.,
Mit dem Registrierungseditor können Sie die folgenden Parameter für RPC ändern. Die unten diskutierten RPC-Portschlüsselwerte befinden sich alle im folgenden Schlüssel in der Registrierung:
HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet\ Entry name Datentyp
Ports REG_MULTI_SZ
- Gibt einen Satz von IP-Portbereichen an, die entweder aus allen im Internet verfügbaren Ports oder aus allen im Internet nicht verfügbaren Ports bestehen. Jede Zeichenfolge repräsentiert einen einzelnen Port oder einen inklusiven Satz von Ports., Beispielsweise kann ein einzelner Port durch 5984 dargestellt werden, und ein Satz von Ports kann durch 5000-5100 dargestellt werden. Wenn Einträge außerhalb des Bereichs von 0 bis 65535 liegen oder eine Zeichenfolge nicht interpretiert werden kann, behandelt die RPC-Laufzeit die gesamte Konfiguration als ungültig.
PortsInternetAvailable REG_SZ Y oder N (nicht case-sensitive)
- Wenn Y die Anschlüsse aufgeführt, die in den Häfen Schlüssel sind alle im Internet verfügbaren ports auf diesem computer. Wenn N, sind die im Schlüssel Ports aufgeführten Ports alle Ports, die nicht im Internet verfügbar sind.,
UseInternetPorts REG_SZ ) Y oder N (nicht case-sensitive)
- Gibt den Standard-system-Richtlinie.
- Falls Y, werden den Prozessen, die die Standardeinstellung verwenden, Ports aus der Menge der Internet-verfügbaren Ports zugewiesen, wie zuvor definiert.
- Wenn N, werden den Prozessen, die den Standardwert verwenden, Ports aus dem Satz von Nur-Intranet-Ports zugewiesen.
Beispiel:
In diesem Beispiel wurden die Ports 5000 bis 6000 willkürlich ausgewählt, um zu veranschaulichen, wie der neue Registrierungsschlüssel konfiguriert werden kann., Dies ist keine Empfehlung für eine Mindestanzahl von Ports, die für ein bestimmtes System benötigt werden.
Sie sollten eine Reihe von Ports über Port 5000 öffnen. Portnummern unter 5000 werden möglicherweise bereits von anderen Anwendungen verwendet und können Konflikte mit Ihren DCOM-Anwendungen verursachen. Darüber hinaus zeigen frühere Erfahrungen, dass mindestens 100 Ports geöffnet werden sollten, da mehrere Systemdienste auf diesen RPC-Ports angewiesen sind, um miteinander zu kommunizieren.
Hinweis
Die erforderliche Mindestanzahl an Ports kann von Computer zu Computer unterschiedlich sein., Computer mit höherem Datenverkehr können in eine Port-Erschöpfungssituation geraten, wenn die dynamischen RPC-Ports eingeschränkt sind. Berücksichtigen Sie dies bei der Einschränkung des Portbereichs.
Warnung
Wenn ein Fehler in der Portkonfiguration vorliegt oder nicht genügend Ports im Pool vorhanden sind, kann der Endpoint Mapper-Dienst keine RPC-Server mit dynamischen Endpunkten registrieren. Wenn ein Konfigurationsfehler vorliegt, lautet der Fehlercode 87 (0x57) ERROR_INVALID_PARAMETER. Dies kann sich auch auf Windows RPC-Server wie Netlogon auswirken., In diesem Fall wird das Ereignis 5820 protokolliert:
Protokollname: SystemSource: NETLOGONEvent ID: 5820Level: ErrorKeywords:ClassicDescription: Der Netlogon-Dienst konnte die AuthZ-RPC-Schnittstelle nicht hinzufügen. Der Dienst wurde beendet. Der folgende Fehler ist aufgetreten: ‚Der parameter ist falsch.‘
Wenn Sie einen tiefen Tauchgang machen möchten, wie es funktioniert, siehe RPC over IT / Pro.
Fehlerbehebung bei RPC-Fehlern
PortQuery
Das Beste, um RPC-Probleme immer zu beheben, bevor Sie überhaupt zu Traces gelangen, ist die Verwendung von Tools wie PortQry., Sie können schnell feststellen, ob Sie eine Verbindung herstellen können, indem Sie den Befehl ausführen:
Portqry.exe -n <ServerIP> -e 135
Dies würde Ihnen eine Menge Ausgabe geben, nach der Sie suchen sollten *ip_tcp – und die Portnummer in den Klammern, die angibt, ob Sie erfolgreich einen dynamischen Port von EPM erhalten und auch eine Verbindung herstellen konnten. Wenn das Obige fehlschlägt, können Sie in der Regel gleichzeitige Netzwerkspuren sammeln., So etwas aus der Ausgabe von „PortQry“:
Portqry.exe -n 169.254.0.2 -e 135
Teilausgabe unten:
Fettdruck ist die kurzlebige Portnummer, zu der Sie erfolgreich eine Verbindung hergestellt haben.
Netsh
Sie können die folgenden Befehle ausführen, um die in Windows integrierten Netsh-Captures zu nutzen und einen gleichzeitigen Trace zu erfassen. Denken Sie daran, das Folgende auf einem „Admin CMD“ auszuführen, es erfordert eine Erhöhung.,
-
Auf dem Client
Netsh trace start scenario=netconnection capture=yes tracefile=c:\client_nettrace.etl maxsize=512 overwrite=yes report=yes
-
Auf dem Server
Netsh trace start scenario=netconnection capture=yes tracefile=c:\server_nettrace.etl maxsize=512 overwrite=yes report=yes
Versuchen Sie nun, Ihr Problem vom Client-Computer aus zu reproduzieren und sobald Sie das Gefühl haben, dass das Problem reproduziert wurde, stoppen Sie die Spuren mit dem Befehl
Netsh trace stop
Öffnen Sie die Traces in Microsoft Network Monitor 3.4 oder Message Analyzer und filtern Sie den Trace nach
-
Ipv4.address==<client-ip>
undipv4.address==<server-ip>
undtcp.port==135
oder einfachtcp.port==135
sollte helfen., -
Suchen Sie in der Spalte“ Protokoll „nach dem Protokoll“ EPM“.
-
Überprüfen Sie nun, ob Sie eine Antwort vom Server erhalten. Wenn Sie eine Antwort erhalten, notieren Sie sich die dynamische Portnummer, der Sie zugewiesen wurden.
-
Überprüfen Sie, ob wir erfolgreich eine Verbindung zu diesem dynamischen Port herstellen.,
-
Der Filter sollte ungefähr so aussehen:
tcp.port==<dynamic-port-allocated>
undipv4.address==<server-ip>
Dies sollte Ihnen helfen, die Konnektivität zu überprüfen und zu isolieren, wenn Netzwerkprobleme auftreten.
Port nicht erreichbar
Der häufigste Grund, warum der RPC-Server nicht verfügbar ist, ist, wenn der dynamische Port, den der Client zu verbinden versucht, nicht erreichbar ist. Der clientseitige Trace zeigt dann TCP-SYN-Retransmits für den dynamischen Port an.,
Der Port kann aus einem der folgenden Gründe nicht erreichbar sein:
- Der dynamische Portbereich ist auf der Firewall in der Umgebung blockiert.
- Ein mittleres Gerät löscht die Pakete.
- Der Zielserver löscht die Pakete (WFP drop / NIC Drop / Filtertreiber usw.).
Leave a Reply