2016-02-16 38 views
0

我正在创建WCF服务来接收消息(字符串)。它有soap请求,如下所示。我通过互联网找到了很多例子,但我无法彻底理解这些例子。在WCF服务中处理自定义soap头文件

我发现这篇文章是非常有帮助的,但仍然不能使它工作 http://weblogs.asp.net/paolopia/handling-custom-soap-headers-via-wcf-behaviors

阅读一些文章之后,我才知道,我需要处理以下区域(一)SOAP头(B )消息检查(C)客户端上下文和(d)服务器环境类

  1. 如何处理的mustUnderstand头
  2. 我需要捕捉值传递messageidReplyToToFromAction

以下的SOAP消息需要如果要创建一个WCF服务,你要消耗

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> 
    <soapenv:Header> 
    <a:Action s:mustUnderstand="1">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b</a:Action> 
    <a:From><a:Address>urn:oid:1.2.3.4.5.6.1234567.10.70.142.2</a:Address> 
    </a:From> 
    <a:MessageID>urn:uuid:3a40ebfe-2abc-4de9-b6f6-06c7962f6050</a:MessageID> 
    <a:ReplyTo> 
    <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> 
    </a:ReplyTo> 
    <a:To>https://localhost/MyWCFService/Service.asmx</a:To> 
</soapenv:Header> 

...

+0

如果你能拦截消息作为'Message'对象,你可以阅读'Header'财产。在这种情况下使用'IDispatchMessageInspector'。 –

+0

@AmitKumarGhosh示例代码将有所帮助 – Shai

+0

嗨shai。为什么你需要自定义行为。您是否希望在每个请求的应用程序中进行任何日志记录或审计? –

回答