Отключить проверку сертификата

Разместил сервис WCF на удаленном хосте (в данном случае Azure). В проекте не нужна проверка сертификата X.509, поэтому её нужно отключить. В web.config'е прописано:


    <system.net>
        <settings>
          <servicePointManager checkCertificateName="false" checkCertificateRevocationList="false"/>
        </settings>
    </system.net>
    ...
    <wsDualHttpBinding>
        <binding name="WSDualHttpBinding_Config" closeTimeout="00:01:00"
          maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="None">
          </security>
        </binding>
     </wsDualHttpBinding>

Так же проверка отключена на клиенте (CertificateValidator реализован):


    <endpointBehaviors>
    <behavior name="DisableServiceCertificateValidation">
      <clientCredentials>
        <serviceCertificate>
          <authentication certificateValidationMode="Custom"
            customCertificateValidatorType="ProjectManagement.CertificateValidator, ProjectManagement"
            revocationMode="NoCheck" />
        </serviceCertificate>
      </clientCredentials>
    </behavior>
    </endpointBehaviors>

Однако при такой конфигурации подключение к сервису попросту виснет. Что сделано не так?


Ответы (1 шт):

Автор решения: A K

<security mode="None"> (Transport и что-то там ещё) это для другого.

Начните не wsDualHttpBinding, а с обычного basicHttpBinding, укажите в baseAdress http а не https:

  <system.serviceModel>
    <services>
      <service behaviorConfiguration="MEX" name="asdf">
        <endpoint address="фыва" binding="basicHttpBinding" bindingConfiguration="MyBindings" name="MainEndpoint"
                  contract="asdf" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8021/" />
          </baseAddresses>
        </host>
      </service>
      <service behaviorConfiguration="MEX" name="asdf">
        <endpoint address="фыва" binding="basicHttpBinding" bindingConfiguration="MyBindings" name="MainEndpoint"
                  contract="asdf" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8022/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <bindings>
      <basicHttpBinding>
        <binding name="MyBindings" closeTimeout="00:07:00" openTimeout="00:07:00" receiveTimeout="00:07:00"
                 sendTimeout="00:07:00" maxBufferSize="2147483647" maxBufferPoolSize="524288"
                 maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="128" maxStringContentLength="2147483647" maxArrayLength="2147483646"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None"></security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MEX">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
→ Ссылка