У меня есть служба RESTful WCF, размещенная в IIS. Он имеет свой собственный подкласс WebServiceHostFactory и WebServiceHost.
В настоящее время его веб-сайт IIS настроен как с привязками TLS, так и без TLS (обе с одним IP-адресом). Однако при поступлении запроса на небезопасную привязку IIS возникает эта ошибка (скрыта в комментарии SGML в ASP.NET YSoD):
[EndpointNotFoundException]: There was no channel actively listening at 'http://mywebservice.com./MyService.svc/'. This is often caused by an incorrect address URI. Ensure that the address to which the message is sent matches an address on which a service is listening.
at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()
[HttpException]: There was no channel actively listening at 'http://mywebservice.com./MyService.svc/'. This is often caused by an incorrect address URI. Ensure that the address to which the message is sent matches an address on which a service is listening.
at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Однако я понятия не имею, где я установил эти привязки - потому что нигде в моем коде или файле web.config не указано, что он должен использовать "https://mywebservice.com/MyService.svc", во-первых.
Я отмечаю, что в сведениях об исключительной ситуации имя хоста указывается как полное доменное имя root для mywebservice.com. а не типичное полное корневое полное доменное имя «mywebservice.com» - это имеет какое-то значение?
РЕДАКТИРОВАТЬ (в ответ на комментарий): веб-сайт IIS имеет две привязки: один HTTP-порт 80 и привязан к одному IP-адресу, а другой привязки для HTTPS на порт 443 на тот же IP-адрес. Для каждой привязки нет настроек заголовка узла.