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

Я использую 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.

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

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

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

  • Отчет от 'http://localhost/DXDirectory/DXDirectoryService.svc': "Формат документа не распознан (тип содержимого 'text/html; charset=UTF-8').'.
  • Report from 'DISCO Document' is 'There was an error downloading 'https://hes-ashu.abc.com/DXDirectory/DXDirectoryService.svc?disco'.'.
    • The underlying connection was closed: An unexpected error occurred on a send.
    • Аутентификация не удалась, так как удаленная сторона закрыла транспортный поток.
  • Отчет из «Документа WSDL»: «Формат документа не распознан (тип содержимого — «текст/html; кодировка = UTF-8»).».
  • Отчет из «Схемы XML»: «Формат документа не распознан (тип содержимого — «текст/html; кодировка = UTF-8»).». Метаданные содержат неразрешимую ссылку: 'http://localhost/DXDirectory/DXDirectoryService.svc'. .

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

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

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


person Ashish Ashu    schedule 01.09.2009    source источник


Ответы (1)


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

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

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

person Shiraz Bhaiji    schedule 01.09.2009
comment
Спасибо за ответ, Ширадж.. Не могли бы вы подсказать, как исправить https. Как включить SSL?? - person Ashish Ashu; 01.09.2009
comment
Для тестирования попробуйте установить режим безопасности None - person Shiraz Bhaiji; 01.09.2009