检索使用WSHttpBinding时由WCF自动设置的MessageId

时间:2010-11-08 16:48:36

标签: c# wcf wshttpbinding wcf-wshttpbinding

我使用WCF来使用一个尊重WS表单的Web服务(然后我使用WSHttpBinding绑定)。此表单涉及在soap请求的标头中设置MessageID,并且RelatesTo字段中的响应标头中存在相同的ID。我想记录我与此MessageId一起提出的请求,但无法找到检索WCF设置的messageId的方法,也可以手动设置它。我设法通过在字段上设置正确的属性来从响应中获取它,但是在请求上执行此操作让我设置它但是看起来WCF会覆盖它并且在调用完成后不允许我访问新的值事件。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

我也找不到检索自动设置的消息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
    }

希望有所帮助