2011-10-24 3 views
0

Я должен использовать WS-Addressing/WS-Security в наших службах WCF. Сервисы вызываются мобильным устройством, Windows Mobile 6/.NET Compact Frameowk 3.5.Отсутствие элементов WS-Addressing в заголовке Soap с использованием среды WCF/.NET Compact Framework

У меня есть все, что работает, но по какой-то причине MessageID не входит в мой заголовок, и он указан как требование. У привязки и клиента указан Soap12WSAddressing10. Я получаю это от регистрации на транспортном уровне:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <s:Header> 
    <a:Action s:mustUnderstand="1" u:Id="_3">http://tempuri.org/ISyncService/GetSchemaResponse</a:Action> 
    <ActivityId CorrelationId="28815cbc-7d07-45ea-9ce6-ce0a68a375f2" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">7a63c3ec-5955-47fd-9af2-45211b839783</ActivityId> 
    <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
    <u:Timestamp u:Id="uuid-4fb4f460-8485-492b-9865-1b4b49c5c187-16"> 
     <u:Created>2011-10-24T22:09:53.182Z</u:Created> 
     <u:Expires>2011-10-24T22:14:53.182Z</u:Expires> 
    </u:Timestamp> 

Любые предложения?

ответ

0

Не знаю, если вопрос уже дан. Я предполагаю, что вы хотите добавить заголовок адресации ws MessageId в свой ответ. Вы могли бы реализовать IDispatchMessageInspector и в функции beforesendreply можно добавить MessageId в ответ (я использовал VB.NET, но C# должны быть эквивалентны):

Public Sub BeforeSendReply(ByRef reply As System.ServiceModel.Channels.Message, ByVal correlationState As Object) Implements IDispatchMessageInspector.BeforeSendReply 
    reply.Headers.MessageId = New UniqueId(Guid.NewGuid()) 
End sub 

В моем случае оба MessageId и To -header были в моем ответе отсутствует messageversion Soap11WSAddressing10 or Soap12WSAddressing10. Мне удалось добавить MessageId с указанным выше кодом, но если я попытаюсь добавить заголовок To таким же образом, заголовок To никогда не будет включен, когда ответ придет на клиент.

 Смежные вопросы

  • Нет связанных вопросов^_^