Сбой согласования интерфейса поставщика поддержки безопасности (SSPI) со службой WCF в IIS

У меня возникли проблемы с развертыванием службы WCF. На машине разработки все работало нормально. Однако, когда я пытаюсь разместить его на сервере с IIS через http-порт 80, у меня возникают проблемы с безопасностью.

Простое копирование привело к ошибке The request for security token could not be satisfied because authentication failed, и я заметил, что мой DNS-идентификатор был:

      <identity>
        <dns value="localhost"/>
      </identity>

Поэтому я изменил это на:

      <identity>
        <dns value="ServerName"/>
      </identity>

Однако теперь я получаю The Security Support Provider Interface (SSPI) negotiation failed (поэтому кажется, что проблема с DNS-идентификацией). Это служба в моем файле web.config:

  <system.serviceModel>
    <services>
      <service name="WCFDataInterface.Service">
        <!-- Service Endpoints -->
        <endpoint address="" binding="wsHttpBinding" contract="WCFDataInterface.IService">
          <identity>
            <dns value="ServerName"/>
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <protocolMapping>
      <add binding="wsHttpBinding" scheme="http"/>
    </protocolMapping>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>

Кто-нибудь может помочь с настройкой этого? Все ресурсы, которые я могу найти в Интернете, только добавляют путаницы. Я не могу найти способ обойти эту проблему аутентификации, разместив службу wsHttpBinding.


person Joe    schedule 27.04.2016    source источник


Ответы (1)


Попробовав множество решений, я думаю, что тем временем у меня все работает, по крайней мере, установив для режима безопасности значение none:

<bindings>
  <wsHttpBinding>      
    <binding name="myBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">         
      <readerQuotas maxDepth="200" maxStringContentLength="8388608" maxArrayLength="16384" maxBytesPerRead="2147483647" maxNameTableCharCount="16384" />
      <security mode="None" />
      <reliableSession enabled="true" />
    </binding>
  </wsHttpBinding>
</bindings>
person Joe    schedule 27.04.2016