SecurityMode: Message
直接チャネル インターフェイスを介して WSHttpBinding を使用して、WCF サービス用の最小限のクライアントを構築しようとしています。
私の現在のコードは非常に単純です:
EndpointIdentity i = EndpointIdentity.CreateX509CertificateIdentity(clientCertificate);
EndpointAddress a = new EndpointAddress(new Uri("http://myServerUrl"), i);
WSHttpBinding b= new WSHttpBinding(SecurityMode.Message);
ChannelFactory<IRequestChannel> channelFactory = new ChannelFactory<IRequestChannel>(b, a);
channelFactory.Open();
IRequestChannel channel = channelFactory.CreateChannel();
channel.Open();
Message response = channel.Request(requestMessage);
clientCertificate が正しく読み込まれます。ただし、その後、すべての関数を正しい方法で呼び出すかどうかはわかりません。
事実: コード スニペットの最後の行はMessageSecurityException
、コンテンツとともに をスローします。
クライアントは、SspiNegotiation/Kerberos の目的で、ターゲット アドレス ' http://myServerUrl 'の ID に基づいてサービス プリンシパル名を特定できません。ターゲット アドレス ID は、UPN ID (acmedomain\alice など) または SPN ID (host/bobs-machine など) である必要があります。
この問題の原因は何ですか?