Параметры безопасности для этой службы требуют «анонимной» аутентификации, но она не включена для приложения IIS, в котором размещается эта служба - PullRequest
1 голос
/ 01 сентября 2009

Я использую IIS V5.1. Интегрированная проверка подлинности Windows

У меня есть следующий веб-конфиг:

<system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="wsHttpEndpointBinding">
          <security mode="Transport" />
        </binding>
      </wsHttpBinding>
    </bindings>
    <services>
      <service behaviorConfiguration="DXDirectory.Service1Behavior"
        name="DXDirectory.DXDirectoryService">
        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsHttpEndpointBinding"
          name="wsHttpEndpoint" contract="DXDirectory.IDXDirectoryService" />
        <endpoint address="mex" binding="mexHttpsBinding" bindingConfiguration=""
          name="MexHttpsBindingEndpoint" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="DXDirectory.Service1Behavior">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

Когда я решу посмотреть файл svc в браузере, появится следующая ошибка:

Исключение:
Параметры безопасности для этой службы требуют «анонимной» аутентификации, но она не включена для приложения IIS, в котором размещается эта служба.

Эта ошибка устраняется при удалении конечной точки Mex.

Но когда я пытаюсь добавить ссылку на службу в клиентском приложении, она выдает следующую ошибку:

документ по URL http://localhost/DXDirectory/DXDirectoryService.svc не был распознан как известный тип документа.

Сообщение об ошибке от каждого известного типа может помочь вам решить проблему:

  • Отчет от 'http://localhost/DXDirectory/DXDirectoryService.svc' - это' Формат документа не распознан (тип контента: 'text / html; charset = UTF-8'). '.
  • Отчет из «Документа DISCO»: «Произошла ошибка при загрузке» https://hes -ashu.abc.com / DXDirectory / DXDirectoryService.svc? Disco '.'.
    • Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка.
    • Ошибка аутентификации, поскольку удаленная сторона закрыла транспортный поток.
  • Отчет из «Документа WSDL» имеет вид «Формат документа не распознан (тип содержимого« text / html; charset = UTF-8 »).».
  • Отчет из «Схемы XML»: «Формат документа не распознан (тип содержимого« text / html; charset = UTF-8 »). Метаданные содержат ссылку, которая не может быть разрешена: 'http://localhost/DXDirectory/DXDirectoryService.svc'.

HTTP-запрос не авторизован с помощью схемы аутентификации клиента «Anonymous». Заголовок аутентификации, полученный от сервера, был 'Negotiate, NTLM'.

Удаленный сервер возвратил ошибку: (401) Несанкционированный.

Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу.

1 Ответ

1 голос
/ 01 сентября 2009

При указании режима безопасности транспорта WCF ожидает https. Попробуйте исправить это и посмотрите, какую ошибку вы получите.

Также проверьте тэг system.web.

Ответ, который вы получаете "text / html", вероятно, является страницей с ошибкой, поэтому, если у вас есть возможность ее потерять, вы получите лучшее сообщение об ошибке.

...