Я пытаюсь настроить безопасность https для моей веб-службы wcf, размещенной в IIS 7.5. Я просмотрел каждую статью, которую смог найти в Интернете по этому поводу, и попробовал практически все конфигурации или уловки IIS, которые смог найти, или варианты. Я думаю, что это может быть проблема конфигурации IIS, уровня Windows. Мы используем сертификат SSL с подстановочными знаками, например * .mycompany.com. Этот сертификат используется на 3 других сайтах уже в том же IIS, если это имеет какое-либо значение. Кто-нибудь знает, с чем я здесь сталкиваюсь ??? Это общедоступный сервер, без TEST и http-привязки работает нормально. У меня такая же проблема https на моих серверах разработки и производства. У нас есть еще один https-сайт на этой производственной коробке, и он отлично отправляет и получает данные. Я получаю исключение:
На https://subdomain.mydomain.com/MyService.svc не было прослушивания конечной точки, которая могла бы принять сообщение. Часто это вызвано неправильным адресом или действием SOAP.
Внутреннее исключение:
Удаленный сервер возвратил ошибку: (404) Не найдено.
Вот мой web.config
:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appSettings file="LocalAppSettings.config">
<!--<add key="CustomIISServiceHostEndPoint" value="https://subdomain.mydomain.com/MyService.svc" />-->
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<customErrors mode="Off" />
</system.web>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="COLWebServiceBinding" maxReceivedMessageSize="134217727" sendTimeout="00:03:00" receiveTimeout="00:03:00">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
<readerQuotas maxArrayLength="65536" maxBytesPerRead="65536" maxStringContentLength="134217727" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="COLWebService.ServiceBehavior" name="COLWebService">
<endpoint address="https://subdomain.mydomain.com/MyService.svc"
binding="basicHttpBinding"
contract="MyCompany.COLWebService.ICOLWebService"
bindingConfiguration="COLWebServiceBinding" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
</service>
</services>
<extensions>
<behaviorExtensions>
<add name="errorHandler" type="MyCompany.COLWebService.ErrorHandlerBehaviorExtensionElement, MyCompany.COLWebService" />
</behaviorExtensions>
</extensions>
<behaviors>
<serviceBehaviors>
<behavior name="COLWebService.ServiceBehavior">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<!--<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>-->
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="false">
</serviceHostingEnvironment>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>
А вот и app.config
моего клиента:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="wsHttpBinding_ICOLWebService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:03:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="134217727"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true">
<readerQuotas maxStringContentLength="134217727" maxArrayLength="65536"
maxBytesPerRead="65536" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://subdomain.mydomain.com/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="wsHttpBinding_ICOLWebService"
contract="COLWebService.ICOLWebService" name="wsHttpBinding_ICOLWebServiceEP" />
</client>
</system.serviceModel>
</configuration>