2011-10-24 9 views
0

WCFサービスでWS-Addressing/WS-Securityを使用する必要があります。このサービスは、モバイルデバイス、Windows Mobile 6/.NET Compact Frameowk 3.5によって呼び出されます。WCF/.NET Compact Frameworkを使用してSoapヘッダーにWS-Addressing要素がありません

私はすべてうまくいっていますが、何らかの理由で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

質問に既に回答しているかどうかわかりません。私はあなたの応答にヘッダMessageIdをアドレス指定するwsを追加したいと仮定しています。

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とした-header To:あなたはIDispatchMessageInspectorを実装でき、beforesendreply機能であなたが回答でMessageIdを追加することができます(私は同等でなければなりませんVB.NETが、C#を使用しました) messageversion Soap11WSAddressing10 or Soap12WSAddressing10を使用中に私の応答に行方不明です。私は上記のコードでMessageIdを追加することができましたが、同じ方法でToヘッダーを追加しようとすると、応答がクライアントに到着したときにToヘッダーが決して含まれません。

関連する問題