Wenn Sie den Dienst von einer Orchestrierung verbrauchen könnten Sie die folgenden Schritte versuchen:
eine XSD-Darstellung Ihrer FaultContract das Projekt hinzufügen und diese als Nachrichtentyp auf Fehler Betrieb verwenden .
einen Exception-Handler-Block Fügen Sie die Orchestrierung mit dieser Störung Betrieb als Nachrichtentyp
Auf dem Zwei-Wege-WCF Sendport auf die Registerkarte Nachrichten zu gehen und dann auf ‚Inbound BizTalk Message Body‘ Ändern Sie den Radiobutton in Pfad.
On 'Body Wegausdruck' hinzufügen etwas wie folgt aus:
/* [namespace-uri() = 'http://myservice.namespace/'] |/* [Local-name() = 'Fehler']/* [local-name() 'Detail' =]/*
Diese beiden XPaths getrennt durch ein '|' Je nachdem, was es erhält, wird der Adapter entweder die richtige Serviceantwort oder den Inhalt des Detailknotens, an dem WCF FaultContract platziert ist, veröffentlichen. Dadurch kann der Disassembler arbeiten, wenn er versucht, die Nachricht zu identifizieren.
Ein Nebeneffekt davon ist, dass Sie ein Problem beim Auffangen von SOAP-Fehlern in der Orchestrierung haben. Dies wird jedoch durch Erstellen einer Schemadarstellung eines SOAP-Fehlers (http://schemas.datacontract.org/2004/07/System.ServiceModel#ExceptionDetail) gelöst und als zweite Fehleroperation verwendet.
Ich kann BizTalk beziehen diese Baugruppe haben. Wollen Sie mich bitte weiter zur Implementierung führen ... wie binde ich die Fehlerausnahme (Port) an diesen Ausnahmetyp/Schema? – Muralidhar