У меня есть следующая служба окон Windows, которая прекрасно работает по HTTP
Uri[] httpBaseAddress = new Uri[] { new Uri("http://localhost:8464/SupportRemote") };
serviceHost = new ServiceHost(typeof(Service.SupportRemoteService), httpBaseAddress);
var Binding = new WebHttpBinding();
ServiceEndpoint endpoint = serviceHost.AddServiceEndpoint(typeof(Model.ISupportRemoteService), Binding, "Rest");
endpoint.Behaviors.Add(new WebHttpBehavior());
foreach (ServiceEndpoint EP in serviceHost.Description.Endpoints)
EP.Behaviors.Add(new BehaviorAttribute());
var serviceBehavior = new ServiceMetadataBehavior();
serviceBehavior.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(serviceBehavior);
serviceHost.Open();
Теперь я хочу переместить ее по HTTPS с самозаверяющим сертификатом, но служба не работает.я не знаю, где проблема
Uri[] httpBaseAddress = new Uri[] { new Uri("https://localhost:8464/SupportRemote") };
serviceHost = new ServiceHost(typeof(Service.SupportRemoteService), httpBaseAddress);
var Binding = new WebHttpBinding(WebHttpSecurityMode.Transport);
Binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
ServiceEndpoint endpoint = serviceHost.AddServiceEndpoint(typeof(Model.ISupportRemoteService), Binding, "Rest");
endpoint.Behaviors.Add(new WebHttpBehavior());
foreach (ServiceEndpoint EP in serviceHost.Description.Endpoints)
EP.Behaviors.Add(new BehaviorAttribute());
var serviceBehavior = new ServiceMetadataBehavior();
serviceBehavior.HttpGetEnabled = false;
serviceBehavior.HttpsGetEnabled = true;
serviceHost.Description.Behaviors.Add(serviceBehavior);
serviceHost.Credentials.ServiceCertificate.SetCertificate("CN=MyCertificate", System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine, System.Security.Cryptography.X509Certificates.StoreName.Root);
serviceHost.Open();