Ich habe Probleme beim Abfangen einer Antwortnachricht aufgrund eines ungültigen Umschlags. Leider wirft WCF die Ausnahme "Unerkannte Nachrichtenversion". bevor AfterReceiveReply aufgerufen wird, habe ich keine Möglichkeit, das Antwort-XML zu korrigieren. Gibt es einen niedrigeren (oder anderen) Aufruf, den ich verwenden kann, um den Stream abzufangen und dieses XML zu korrigieren, oder gibt es eine bessere Möglichkeit, die Antwort zu verarbeiten, d. H. CustomBinding?Ändern einer SOAP-Nachricht vor der Deserialisierung
Ich habe IClientMessageInspector AfterReceiveReply und IOperationBehavior versucht, aber diese Verhaltensweisen werden beide nach dem Auslösen der Ausnahme aufgerufen.
So sieht die Antwort aus.
<ENVELOPE>
<HEADER>
<ERROR_CODE>955</ERROR_CODE>
<ERROR_DESC>XML Parsing Failed: test:1:74 error: value '1231231230' does not match regular expression facet '\d{19,20}'</ERROR_DESC>
<ASYNCH_RESPONSE_INDICATOR>0</ASYNCH_RESPONSE_INDICATOR>
</HEADER>
<BODY>
<MY_METHOD_RESPONSE></MY_METHOD_RESPONSE>
</BODY>
</ENVELOPE>
Sehen Sie sich die IErrorHandler-Schnittstelle an. https://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.ierrorhandler.aspx –
@WilliamXifaras - das ist für die Service-Seite. OPs Problem ist Client-Seite –