Невозможно заставить веб-службу WCF работать с аутентификацией Windows - PullRequest
0 голосов
/ 24 февраля 2012

Я написал свой первый веб-сервис WCF, который прекрасно работает на моем собственном локальном тестовом веб-сервере, однако я получаю сообщение об ошибке при развертывании его в IIS.

Наш сервер IIS использует встроенную аутентификацию и не разрешает анонимный доступ. Начиная с того, что я прочитал , мне нужно установить режим безопасности для привязки на TransportCredentialOnly. Весь раздел в web.config:

  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="VZW.TrainingPortfolioManager.Website.TPMAspNetAjaxBehavior">
          <enableWebScript />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <services>
      <service name="VZW.TrainingPortfolioManager.Website.TPM">
        <endpoint address="" behaviorConfiguration="VZW.TrainingPortfolioManager.Website.TPMAspNetAjaxBehavior"
          binding="webHttpBinding" contract="VZW.TrainingPortfolioManager.Website.TPM" />
      </service>
    </services>
    <bindings>
      <basicHttpBinding>
        <binding>
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows" />
          </security>
        </binding>
      </basicHttpBinding>      
    </bindings>
  </system.serviceModel>

Однако, когда я загружаю веб-сервис в браузере, я получаю сообщение об ошибке:

Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.

Что-нибудь еще нужно изменить или настроить, чтобы это работало?

1 Ответ

0 голосов
/ 24 февраля 2012

Разобрался. Атрибут binding в endpoint должен соответствовать узлу в коллекции <bindings>. Будет работать следующее:

<bindings>
  <webHttpBinding>
    <binding>
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows" />
      </security>
    </binding>
  </webHttpBinding>      
</bindings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...