Frage

ich WCF verwenden, um einen Web-Service zu konsumieren, die die WS Form achten (ich dann verwenden WSHttpBinding Bindung). Diese Form beinhaltet eine MessageID in der Kopfzeile der Seife Anfrage und die gleichen ID vorhanden ist in dem reponse Header im RelatesTo Feld gesetzt werden. Ich möchte die Bitte, die ich mit diesem Meldungs ??gemacht entlang loggt sein, kann aber nicht einen Weg finden, den messageId Satz von WCF abrufen entweder kann ich es manuell einstellen. Ich schaffte es aus der Antwort zu erhalten, indem das richtige Attribut auf dem Feld Einstellung, aber es tut mir so auf Wunsch lassen gesetzt, sondern scheint WCF außer Kraft gesetzt und lass mich nicht den neuen Wert Ereignis zugreifen, nachdem der Anruf getätigt wurde.

Jede Idee?

War es hilfreich?

Lösung

Ich habe nicht einen Weg finden, die automatisch eingestellte Nachrichten-ID entweder abrufen, aber Sie können es manuell einfach eingestellt:

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
    }

Ich hoffe, das hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top