Получение MessageId, автоматически устанавливаемого WCF при использовании WSHttpBinding - PullRequest
1 голос
/ 08 ноября 2010

Я использую WCF для использования веб-службы, которая поддерживает форму WS (затем я использую привязку WSHttpBinding).Эта форма включает в себя MessageID, который должен быть установлен в заголовке запроса мыла, и тот же идентификатор, присутствующий в заголовке ответа в поле RelatesTo.Я хотел бы зарегистрировать запрос, который я сделал вместе с этим MessageId, но не могу найти способ получить messageId, установленный WCF, или я могу установить его вручную.Мне удалось получить его из ответа, установив правильный атрибут в поле, но сделав это по запросу, позвольте мне установить его, но, кажется, WCF переопределяет его и не позволяет мне получить доступ к событию нового значения после выполнения вызова.

Есть идеи?

1 Ответ

5 голосов
/ 22 ноября 2010

Я также не нашел способа получить автоматически установленный идентификатор сообщения, но вы можете легко установить его вручную:

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
    }

Надеюсь, что поможет

...