私は数日以来、フォローに苦労しています。私を助けてください。.Net 3.5 で XP マシンを使用しています。この例に従っていましたhttp://msdn.microsoft.com/en-us/library/ms729789.aspx。http://msdn.microsoft.com/en-us/library/ms733813(v=vs.90).aspxを使用して証明書を作成し、証明書 (ローカル コンピューター) > 信頼されたルート証明機関 > 証明書にルート証明書をインポートしました。もう 1 つは [証明書 (ローカル コンピューター)] > [個人] > [証明書] にあります。私は自己ホスト型サービスを提供しています。ホースコードは
ServiceHost svcHost = new ServiceHost(typeof(CalculatorService.CalculatorService), new Uri("https://localhost:8012/CalculatorService"));
ServiceMetadataBehavior smb = svcHost.Description.Behaviors.Find<ServiceMetadataBehavior>();
if (smb == null)
smb = new ServiceMetadataBehavior();
smb.HttpsGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
svcHost.Description.Behaviors.Add(smb);
svcHost.AddServiceEndpoint(ServiceMetadataBehavior.MexContractName,
MetadataExchangeBindings.CreateMexHttpsBinding(),
"mex");
WSHttpBinding b = new WSHttpBinding();
b.Security.Mode= SecurityMode.Transport;
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
svcHost.AddServiceEndpoint(typeof(CalculatorService.ICalculator),b , "");
svcHost.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindBySubjectName, "SignedByCA");
svcHost.Open();
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
svcHost.Close();
クライアントに参照を追加しようとすると、次のエラーが発生します。
「https://localhost:8012/CalculatorService/mex」のダウンロード中にエラーが発生しました。基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。相手側がトランスポート ストリームを閉じたため、認証に失敗しました。メタデータに解決できない参照が含まれています: 'https://localhost:8012/CalculatorService/mex'。https://localhost:8012/CalculatorService/mexへの HTTP 要求の作成中にエラーが発生しました. これは、HTTPS の場合、サーバー証明書が HTTP.SYS で適切に構成されていないことが原因である可能性があります。これは、クライアントとサーバー間のセキュリティ バインディングの不一致が原因である可能性もあります。基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。相手側がトランスポート ストリームを閉じたため、認証に失敗しました。サービスが現在のソリューションで定義されている場合は、ソリューションを構築して、サービス参照を再度追加してみてください。
ありとあらゆる方法を試したと思います。今、私は手がかりがありません。私を助けてください。あなたは私の最後のリソースです。