Я предоставляю одну службу WCF с двумя конечными точками на BasicHttpBinding. Тем не менее, один для http и один для безопасного (SSL). Я добился успеха в достижении этого, используя ниже.
В IIS я также настроил сертификат разработки по умолчанию на сайте SSL, щелкнул «Требовать SSL» и нажал «Игнорировать / Принять», что нормально.
Мой выпуск:
Я вижу, что когда я использую вызов https в браузере, я вижу предупреждение "Незащищенный", и вы нажимаете, чтобы продолжить, и он красный, но с https. Когда я нажимаю кнопку «Незащищенный», я вижу сертификат недействительным. Что-то, что мне нужно сделать в браузере, или в приведенном ниже описании сертификата в поведении сервера должно быть указано поведение конечной точки?
<services>
<service behaviorConfiguration="myServiceBehavior" name="MyService">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="" contract="IInvoiceService"/>
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="myBinding" contract="IInvoiceService"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="myBinding" >
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="graph">
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="myServiceBehavior">
<serviceCredentials>
<serviceCertificate findValue="localhost" storeLocation="LocalMachine"
storeName="My" x509FindType="FindBySubjectName" />
<userNameAuthentication userNamePasswordValidationMode="Windows" />
</serviceCredentials>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>