2010-11-08 24 views
1

我使用WCF來使用尊重WS表單的Web服務(然後使用WSHttpBinding綁定)。這種形式涉及MessageID在肥皂請求的標題中設置,並且在RelatesTo字段中的響應標題中存在相同的標識。我想記錄我與此MessageId一起發出的請求,但無法找到檢索由WCF設置的messageId的方法,我也可以手動設置它。我設法通過在字段上設置正確的屬性從響應中得到它,但是在請求上這樣做讓我設置它,但似乎WCF會覆蓋它,並且不會讓我在調用完成後訪問新的值事件。檢索使用WSHttpBinding時由WCF自動設置的MessageId

有什麼想法?

回答

4

我沒有找到一個方法來檢索或者自動設置的消息ID,但您可以手動設置輕鬆它:

using (new System.ServiceModel.OperationContextScope((System.ServiceModel.IContextChannel)base.Channel)) 
    { 
     m_lastMessageId = new System.Xml.UniqueId(); 
     System.ServiceModel.OperationContext.Current.OutgoingMessageHeaders.MessageId = m_lastMessageId; 
     // call here the request 
    } 

希望幫助

+0

謝謝你,我也有同樣的MessageInterceptor,但你的解決方案更容易。 – VdesmedT 2010-11-22 14:17:40