WCF 4 Rest Service в IIS Developer Express, проблема аутентификации

Когда я размещаю проект «WCF 4 Rest Service Template» (из шаблона) в IIS Developer Express, я получаю следующее:

В IIS указаны схемы проверки подлинности «IntegratedWindowsAuthentication, Anonymous», но привязка поддерживает указание только одной схемы проверки подлинности. Допустимые схемы проверки подлинности: дайджест, согласование, NTLM, базовая или анонимная. Измените настройки IIS так, чтобы использовалась только одна схема аутентификации.

Я не изменял никакую конфигурацию явно, кроме установки automaticFormatSelectionEnabled на false, чтобы вернуть JSON:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <standardEndpoints>
      <webHttpEndpoint>
            <!--Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
            via the attributes on the <standardEndpoint> element below-->
        <standardEndpoint name="" 
                          helpEnabled="true" 
                          automaticFormatSelectionEnabled="false"
                          />
      </webHttpEndpoint>
    </standardEndpoints>
  </system.serviceModel>

Если конфигурация конечной точки не задана явно, то как я могу это сделать для такого типа службы, чтобы явно установить схему аутентификации для службы, чтобы избежать этой проблемы с iis developer express?

Примечание. У меня есть следующие сборки Microsoft.Web.dll и Microsoft.Web.Administration.dll в папке проектов веб-служб / bin приложение, как описано в обходном пути для перенаправления служб WCF здесь, в блоге группы iss: http://blogs.iis.net/vaidyg/archive/2010/07/21/wcf-workaround-for-webmatrix-beta.aspx


person holsee    schedule 12.08.2010    source источник


Ответы (1)


Вам нужно будет отключить схему аутентификации, которая не нужна, я думаю, аутентификация Windows. Так:

  1. Запустить блокнот
  2. Откройте в Блокноте файл:% userprofile% \ Documents \ IISExpress8 \ config \ applicationhost.config
  3. Искать ‹windowsAuthentication
  4. Измените атрибут enabled с true на false
  5. Сохранять

Это отключит проверку подлинности Windows для всех сайтов. В качестве альтернативы вы можете добавить путь к местоположению внизу файла прямо перед последней строкой ‹/configuration> для конкретного сайта (в данном случае YourSite) добавить:

<location path="YourSite" overrideMode="Allow">
    <system.webServer>
        <security>
            <windowsAuthentication enabled="false" />
        </security>
    </system.webServer>
</location>

Это отключит это только для определенного сайта.

person Carlos Aguilar Mares    schedule 12.08.2010