2010-11-08 38 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