Исключение WCF: ... для этой службы требуется «анонимная» аутентификация, но она не включена для приложения IIS, в котором размещается эта служба - PullRequest
3 голосов
/ 17 марта 2012

Я видел этот вопрос здесь и везде много раз, но я не могу обдумать это.

Вот что я хочу сделать.Мне нужно разместить службу WCF в IIS 6. Мне нужна защита имени пользователя и пароля, и я не хочу, чтобы они передавались незашифрованными, поэтому я использую HTTPS.У меня это все работает локально на моем IIS, но когда я прихожу, чтобы развернуть его, я получаю ошибку анонимного доступа не включена.На моем локальном IIS анонимный доступ включен, на развернутом сервере - нет, и мы не хотим его включать.Проблема понята.Решение не очевидно для меня ....

Если я перехожу на страницу в IE или добавляю ссылку на сервис из Visual Studio, я получаю эту ошибку после ввода своего имени пользователя / пароля.Итак, это показывает, что мой сертификат и HTTPS работают нормально, а имя пользователя и пароль верны.Вот соответствующие настройки из web.config:

<services>
  <service name="SecureWcfTestsApplication.Service1">
    <endpoint address=""
      binding="wsHttpBinding"
      bindingConfiguration ="Binding2"
      contract="SecureWcfTestsApplication.IService1" />
  </service>
</services>

<bindings>
  <basicHttpBinding>
  </basicHttpBinding>
  <wsHttpBinding>
    <binding name="Binding2">
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="Windows" algorithmSuite="Default" />
      </security>
    </binding>        
  </wsHttpBinding>
</bindings>

Я использую wsHttpBinding, потому что ему не нравится basicHttpBinding с параметром clientCredentialType, установленным в Windows.Сказав, что я предпочел бы использовать basicHttp, но он хочет, чтобы UserName использовалось в качестве clientCredentialType, и я не уверен, в чем разница между UserName и безопасностью Windows.

Ответы [ 4 ]

1 голос
/ 27 марта 2014

В IIS Manager нажмите на свой сайт.Вы должны быть «в представлении функции» (а не в «представлении содержимого»)

В разделе IIS «представления функции» выберите так называемую функцию «аутентификация» и нажмите ее.Здесь вы можете включить проверку подлинности Windows.Это также возможно (я думаю, в одном из предложений в теме) с помощью настройки в web.config (...)

Но, возможно, у вас есть web.config, который вы не хотите проверятьслишком много с.Тогда эта тема не будет слишком много помощи, поэтому я добавил этот ответ

1 голос
/ 17 марта 2012

Исключение, которое вы получаете, является нормальным, если вы не настраиваете безопасность транспорта с помощью аутентификации Windows, в этом случае необходим тег http://msdn.microsoft.com/en-us/library/ms733089.aspx

<transport>, хотя у вас уже определен тег <message>.

0 голосов
/ 21 октября 2013

В особенно тупой момент я также получал эту ошибку:

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

В конце концов я понял, что мой web.config вообще не имеет тега «аутентификации» в «system.web».Неудивительно, что IIS жаловался на проблемы с аутентификацией!

Чтобы решить проблему, нужно было просто добавить:

  <system.web>
    <authentication mode="Windows" />

Глупо, я знаю ... но я надеюсь, что это поможет!

0 голосов
/ 30 января 2013

Анонимная аутентификация может, и в некоторых случаях должна быть включена для службы, но не для сайта.

Поэтому убедитесь, что в "корневой" аутентификации вашего сайта включена только проверка подлинности Windows.Затем раскройте свой сайт, выберите папку «service» и убедитесь, что в вашем сервисе включена Windows и включена анонимная аутентификация.

По крайней мере, у меня было идентичное сообщение об ошибке с базовым веб-сайтом и службой MSSQL Master Data Servicesрешение.Я получил ошибку при запуске только службы, но сайт работал почти нормально, MDS Explorer не работал, потому что настройки проверки подлинности службы сначала были неверными.Причиной этой неправильной конфигурации может быть ошибка в MDS Configuration Manager при создании нового сайта MDS?

Так что в моем случае проблему не удалось устранить, выполнив какое-либо специальное редактирование для файла web.config или ApplicationHost.Файлы .config, но просто выбирая правильные параметры аутентификации для веб-сайта и его службы в диспетчере IIS.Я не уверен, что это здесь, но, может быть, стоит попробовать?

...