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