1

WCFを使用して、WSフォームを尊重するWebサービスを使用します(次に、WSHttpBindingバインディングを使用します)。このフォームにはMessageID、soapリクエストのヘッダーに設定され、RelatesToフィールドの応答ヘッダーに同じIDが存在することが含まれます。このMessageIdと一緒に行ったリクエストをログに記録したいのですが、WCFによって設定されたmessageIdを取得する方法が見つかりません。また、手動で設定することもできます。フィールドに正しい属性を設定することで応答から取得できましたが、リクエストで設定すると設定できますが、WCFがそれをオーバーライドし、呼び出しが行われた後に新しい値のイベントにアクセスできないようです。

何か案が ?

4

1 に答える 1

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
    }

それが役立つことを願っています

于 2010-11-22T09:05:22.643 に答える