サーバー上でホストされているWebサービスと通信するクライアントアプリケーションがあります(ホストサーバー)。私のクライアントアプリケーションは、basicHttpBindingを使って細かくビルドして接続することができます。しかし、私はセキュリティ上の理由からwsHttpBindingを念入りにしようとしています。WsHttpBindingを持つクライアントアプリケーションでは、 "エンドポイントが聞こえません"というメッセージが表示されます。
先週の昼食前に、ハードコードされた証明書で作業していたと私は誓っていました。ランチから戻ってきて、自分のコードをチェックして、今は動かないでしょう。私は "このメッセージを受け入れることができるhttps://hostServer:1234/Service.svc/MyServiceNameを聞いているエンドポイントはありませんでした。これはしばしば不正なアドレスまたはSOAPアクションによって引き起こされます。"私は自分の設定を再チェックしようとしましたが、私の踏みとどがれは戻りましたが、機能していた状態に戻ることはできませんでした。
アドレスが "https:// hostServer: 1234/Service.svc?singleWsdl "を参照してください。 "https:// hostServer:1234/Service.svc"に問題なく移動し、Wsdlを表示できます。
私のクライアントコードは
WSHttpBinding wsBinding = new WSHttpBinding(SecurityMode.Transport);
wsBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
Client = new MyServiceName(wsBinding, new EndpointAddress(endpoint));
Client.ClientCredentials.ClientCertificate.SetCertificate(
StoreLocation.CurrentUser,
StoreName.My,
X509FindType.FindBySubjectName,
"localCertName");
Client.ChangePassword("test_user", "pt", "a1");
マイ値エンドポイントです = https://hostServer:1234/Service.svc/MyServiceName私のIISサイトが
(正しいIP &ポートIDで)HTTPとHTTPSのバインディングに設定されている
私は本当にこのコードを離陸する前に働かせる必要があります(私の妻はいつでも私たちの2番目の子供による予定です)。私はこれを2日間そのままデバッグするように働いていました。助けてください。