【发布时间】:2017-03-06 18:56:42
【问题描述】:
由于信封无效,我无法拦截响应消息。不幸的是,WCF 抛出异常“无法识别的消息版本”。在调用 AfterReceiveReply 之前,我没有机会更正响应 XML。是否有较低级别(或不同)的调用可以用来拦截流并更正此 XML,或者是否有更好的方法来处理响应,即 CustomBinding?
我已经尝试过 IClientMessageInspector AfterReceiveReply 和 IOperationBehavior 但这些行为都是在抛出异常后调用的。
这是响应的样子。
<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>
【问题讨论】:
-
看看 IErrorHandler 接口。 msdn.microsoft.com/en-us/library/…
-
@WilliamXifaras - 用于服务端。 OP的问题是客户端
标签: c# wcf soap deserialization