2016-02-16 35 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。爲什麼你需要自定義行爲。您是否希望在每個請求的應用程序中進行任何日誌記錄或審計? –

回答