(0) exportieren Drucken
Alle erweitern

Service Bus-Problembehandlung

Letzte Aktualisierung: Juni 2014

In den folgenden Abschnitten werden Probleme beschrieben, die beim Schreiben von Anwendungen für Microsoft Azure Service Bus auftreten können. Sie erfahren zudem, wie Sie diese Probleme beheben können.

In den folgenden Abschnitten wird die Problembehandlung von Servicebus-Anwendungen beschrieben.

Symptom

Eine Servicebus-Anwendung wird in der Entwicklungsstruktur fehlerfrei ausgeführt, stürzt nach der Bereitstellung auf -Servern jedoch ab.

Ursache

Die Servicebus-Assemblys sind zurzeit nicht in die -Plattform integriert.Aus diesem Grund versucht die Anwendung, auf eine Assembly zuzugreifen, die auf dem Server nicht vorhanden ist.

Lösung

Fügen Sie Ihrem Bereitstellungspaket die Servicebus-Assembly hinzu (legen Sie die Assembly z. B. auf Local Copy fest).Beachten Sie, dass Sie die Assemblys aus diesem Grund manuell aktualisieren müssen.

Symptom

Eine Anwendung funktioniert, wenn die Endpunkte programmgesteuert festgelegt werden, verursachen jedoch einen Fehler, wenn die gleichen Konfigurationseinstellungen in der zugehörigen Datei App.config gespeichert werden.Diese Anwendung generiert den folgenden Fehler:

System.Configuration.ConfigurationErrorsException:Die Konfigurationsbindungserweiterung "system.serviceModel/bindings/netTcpRelayBinding" wurde nicht gefunden.Vergewissern Sie sich, dass diese Bindungserweiterung unter "system.serviceModel/extensions/bindingExtensions" ordnungsgemäß registriert ist, und überprüfen Sie die Schreibweise.

Ursache

Die Servicebus-Assemblys sind zurzeit nicht in die -Plattform integriert.Wenn das SDK installiert ist, wird Ihre Datei Machine.config auf dem lokalen Computer so geändert, dass mehrere Windows Communication Foundation (WCF)-Erweiterungen hinzugefügt werden, z. B. NetTcpRelayBinding.Die Anwendung kann dann die relevanten Informationen in der Datei Machine.config finden, z. B. im Abschnitt netTcpRelayBinding.Die ist auf der -Plattform nicht der Fall. Die Anwendung kann die relevanten Informationen nicht finden.

Lösung

Damit Ihre Konfiguration mit funktioniert, kopieren Sie die Erweiterungen aus der lokalen Datei Machine.config in Ihre Datei App.config.Andernfalls werden Tags wie etwa netTcpRelayBinding nicht erkannt.Bei dieser Vorgehensweise wird Ihre Anwendung lokal jedoch aufgrund doppelter Erweiterungen nicht mehr ausgeführt.Daher müssen Sie zwei Versionen der Datei App.config verwalten: eine lokale Version und eine Version für .Es wird empfohlen, diese besondere Aufgabe programmgesteuert auszuführen.

Die folgenden Themen zur Problembehandlung enthalten Informationen zur Herstellen der Verbindung mit Servicebus.Wenn Sie die Lösung Ihres Problems nicht weiter unten in diesem Abschnitt finden, können Sie ggf. eine der folgenden Möglichkeiten in Betracht ziehen:

  • Führen Sie eine Netzwerkablaufverfolgung aus – möglicherweise ist das Netzwerk nicht verfügbar.Wenn Sie den Netzwerkmonitor zum Ermitteln des Status des Netzwerks verwenden, kann Sie dies ggf. beim Debuggen Ihres Problems unterstützen.

Symptom

Wenn Sie versuchen, eine Verbindung mit Servicebus mit einer Clientanwendung herzustellen, wird der folgende Fehler ausgegeben:

Ausnahmefehler:System.ServiceModel.EndpointNotFoundException:Der Endpunkt wurde nicht gefunden.Stellen Sie sicher, dass Sie mithilfe des HTTP-Ports 80 und des TCP-Ports 808 eine Verbindung mit dem Internet herstellen können.

Ursache

Es gibt zahlreiche mögliche Ursachen für diesen Fehler.

Lösung

  • Überprüfen Sie, ob der Host ausgeführt wird.Wenn dies nicht der Fall ist, ist kein Endpunkt vorhanden, mit dem eine Verbindung hergestellt werden kann.Sie können den Dienst ausführen, indem Sie eines der beiden hier gezeigten Verfahren verwenden:

    1. Debugmodus – Klicken im Projektmappen-Explorer von Visual Studio auf Ihr Dienstprojekt, und klicken Sie dann auf Debuggen.Klicken Sie dann auf Neue Instanz starten.Nachdem der Dienst gestartet wurde, wiederholen Sie dieses Verfahren für den Client.Beachten Sie, dass Sie den Client debuggen können, obwohl der Dienst bereits ausgeführt wird.

    2. Außerhalb des Debugmodus – Legen Sie Ihr Dienstprojekt als das Startprojekt fest.Klicken Sie im Menü Debuggen auf Starten ohne Debuggen.Dieser Vorgang besitzt keine Auswirkungen auf Visual Studio, obwohl die Dienstanwendung ausgeführt wird.Nachdem der Dienst gestartet wurde, legen Sie das Clientprojekt als Startprojekt fest, und führen Sie es dann aus.

  • Stellen Sie sicher, dass Sie die Eigenschaft Lokale Kopie für die Assembly Microsoft.ServiceBus.dll (in Visual Studio) auf true festgelegt haben.Auf den Cloud-Servern ist das SDK nicht installiert.Daher müssen Sie die Assembly in Ihr Paket integrieren.Ohne diese Assembly wird Ihre Workerrolle nicht ordnungsgemäß ausgeführt.

  • Bestätigen Sie, dass Sie mithilfe des HTTP-Ports 80 und des TCP-Ports 808 tatsächlich eine Verbindung mit dem Internet herstellen können.

Symptom

Die Anwendung kann keine Verbindung mit Servicebus herstellen und gibt die folgende Fehlermeldung zurück:

"Der Client kann die Sicherheitsaushandlung nicht innerhalb des konfigurierten Zeitlimits (00:01:00) abschließen.Der aktuelle Aushandlungsabschnitt ist 1 (00:00:59.9429968)."

Ursache

Die Authentifizierungsanmeldeinformationen wurden möglicherweise falsch festgelegt.

Lösung

Überprüfen Sie, ob Sie den Client authentifizieren.Überprüfen Sie insbesondere, ob RelayClientAuthenticationType auf None festgelegt wurde.Standardmäßig lautet der der Wert RelayAccessToken und erfordert somit die Bereitstellung eines Authentifizierungsanspruchs, z. B. eines gemeinsamen geheimen Schlüssels.Wenn Sie den Wert jedoch manuell auf None festlegen, sollte der Client keine Authentifizierung bereitstellen.

Wenn Sie den Authentifizierungstyp nicht festgelegt haben, wird wahrscheinlich RelayClientAuthenticationType mit dem Standardwert RelayAccessToken verwendet.Wenn dies der Fall ist, überprüfen Sie, ob Ihr Authentifizierungsanspruch richtig angegeben wurde.Weitere Informationen finden Sie unter Sichern und Authentifizieren einer Service Bus-Verbindung.

Symptom

Wenn Sie versuchen, eine Verbindung mit Servicebus herzustellen, wird der folgende Fehler ausgegeben:

"Fehler beim Überprüfen der Sicherheit für die Nachricht."

Ursache

Eine mögliche Ursache dieses Fehlers besteht darin, dass die UTC-Zeit für den lokalen Computer vor der UTC-Zeit auf dem Servicebus-Server liegt.Der lokale UTC-Zeitstempel kann z. B. "8:06" sein, während der Zeitstempel auf dem Server "8:05" lautet. Der Server betrachtet diese Angabe als ungültigen Zeitstempel und generiert die im Abschnitt "Symptome" beschriebene Fehlermeldung.

Lösung

Stellen Sie sicher, dass die UTC-Zeit für den lokalen Computer richtig ist.Stellen Sie die Uhr manuell um einige Minuten zurück, wenn erforderlich.Servicebus betrachtet etwas ältere Nachrichten nicht als Sicherheitsverletzung, sondern nur Nachrichten, die aus der Zukunft zu kommen scheinen.

Symptom

Sie können einen Dienst im ATOM-Feed nicht finden, obwohl Sie wissen, dass der Dienst erfolgreich ausgeführt wird.

Ursache

Das Standardverhalten der Dienstregistrierung besteht darin, einen Dienst nicht über den ATOM-Feed bereitzustellen.

Lösung

Legen Sie den Endpunkt als sichtbar fest, wie unter Vorgehensweise:Veröffentlichen eines Diensts für die Service Bus-Registrierung beschrieben.

Anzeigen:
© 2014 Microsoft