Handhaben von Verträgen mit typisierten Fehlern in Orchestrierungen
In diesem Thema wird beschrieben,wie Verträge mit typisierten Fehlern gehandhabt werden, wenn WCF-Dienste aus Orchestrierungen heraus genutzt werden. Um typisierte Fehlerausnahmen in Orchestrierungen zu behandeln, muss für die WCF-Dienste, die Sie nutzen, das FaultContractAttribute auf die Dienstvorgänge angewendet werden. Daher können die Fehler mithilfe von FaultException<T> ausgelöst werden, wobei T ein beliebiger gültiger Datenvertrag oder serialisierbarer Typ aus den WCF-Diensten sein kann.
Prozeduren
So handhaben Sie Verträge mit typisierten Fehlern in Orchestrierungen
Klicken Sie in Ihrem Microsoft Visual Studio BizTalk-Projekt in Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt, klicken Sie auf Hinzufügen und dann auf Generierte Elemente hinzufügen.
Wählen Sie im Dialogfeld Generierte Elemente hinzufügen – <Projektname> im Abschnitt Vorlagen die Option WCF-Dienst nutzen aus, und klicken Sie dann auf Hinzufügen.
Klicken Sie auf der Seite Willkommen beim BizTalk WCF-Dienstverbrauchs-Assistent auf Weiter.
Wählen Sie auf der Seite Metadatenquelledie Option Metadatenaustausch-Endpunkt (MEX) aus, und klicken Sie dann auf Weiter.
Geben Sie auf der Seite Metadatenendpunkt die URL für den ausgeführten Dienst an, der Metadaten zum Herunterladen über WS-Metadata Exchange oder Http-Get bereitstellt, z. B. http://localhost:8005. Klicken Sie auf Abrufen, um das Metadatendokument aus der URL abzurufen. Wenn für den ausgeführten Dienst Benutzeranmeldeinformationen mit dem standardauthentifizierungsschema erforderlich sind, klicken Sie auf Bearbeiten , um das Dialogfeld BizTalk WCF-Dienstnutzungs-Assistent zu öffnen, in dem Sie den Benutzernamen und das Kennwort angeben können, die beim Zugriff auf den ausgeführten Dienst verwendet werden sollen. Klicken Sie auf Weiter.
Überprüfen Sie auf der Seite Zusammenfassung von WCF-Dienstmetadaten importieren Ihre Einstellungen. Sie können auf Zurück klicken, um Änderungen vorzunehmen. Klicken Sie dann auf Importieren , um die BizTalk-Artefakte und -Typen zu erstellen, die für die Nutzung des WCF-Diensts verwendet werden sollen.
Klicken Sie auf der Seite Abschließen des BizTalk WCF-Dienstverbrauchs-Assistenten auf Fertig stellen.
Angenommen, der WCF-Dienst, den Sie nutzen, löst die folgende Fehlerausnahme aus:
throw new FaultException<MyOperationException>(divideException);
Der Fehlervorgang am Sendeport erwartet eine Nachricht vom Typ MyOperationException, aber die WCF-Antwortnachricht enthält den gesamten Fehlertext. Daher müssen Sie den Teil MyOperationException aus der Nachricht extrahieren, indem Sie die Option Eingehender BizTalk-Nachrichtentext im Dialogfeld Transporteigenschaften konfigurieren. Beispiel:
Wählen Sie Pfad – Inhalt nach Textkörperpfad aus.
Legen Sie als Textpfadausdruck Folgendes fest:
/*[local-name()='Fault']/*[local-name()='Detail']/* | /*[local-name()='DivideResponse']
Wählen Sie in der Dropdownliste Knotencodierung die Option Xml aus.
Der Orchestrierung müssen Sie einen Bereich und zwei Ausnahmehandler hinzufügen. Ein Ausnahmehandler ist für den Fehlervorgang ähnlich wie myOperationException im vorherigen Beispiel. der andere Ausnahmehandler dient zum Abfangen generischer SOAPExceptions.
Weitere Informationen
Auslösen von Fehlerausnahmen bei Orchestrierungen, die als WCF-Dienste veröffentlicht sind
Verwenden des Verarbeitungs-Assistenten für BizTalk-WCF-Dienste zum Verarbeiten eines WCF-Diensts