Я пытался создать службу WCF, которая использует базовую аутентификацию, и до сих пор я продолжаю выдавать сообщение об ошибке, указывающее, что службе требуется анонимная аутентификация, хотя я думал, что настроил web.config для использования базовой аутентификации.
Я потратил несколько часов, пытаясь найти решение своей проблемы, но не хотел найти решение здесь.Я подозреваю, что это то, что я пропускаю.
Вот что я делаю.Я создал веб-проект, добавил службу wcf, создал другой веб-проект и добавил одну страницу .aspx для тестирования службы.Я не изменил НИЧЕГО в конфигурации службы wcf по умолчанию.Я могу выполнить развертывание в IIS, и если я открою окно браузера и перейду на страницу, служба будет работать нормально, если я включу анонимную аутентификацию.Я также могу использовать тестовую страницу для доступа к службе без каких-либо проблем.
Затем я изменил службу на использование базовой аутентификации (см. Ниже для web.config службы) и перераспределил ее.Я не изменил аутентификацию IIS для использования Basic, поэтому он все еще был настроен на использование анонимной аутентификации.Я обновил браузер и сервис отображается.Тестовая веб-страница все еще имела доступ к службе.
Затем я изменил схему аутентификации в IIS для использования Basic и убедился, что все другие типы аутентификации были отключены.Когда я попытался получить доступ к службе, я получил сообщение об ошибке: «Настройки безопасности для этой службы требуют« анонимной »аутентификации, но она не включена для приложения IIS, на котором размещена эта служба».
Вот веб-сайт моей службы.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings>
<wsHttpBinding>
<binding name="basicAuthBinding">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="TestService">
<endpoint address="http://localhost:7000/BA.svc" binding="wsHttpBinding" bindingConfiguration="basicAuthBinding" name="BasicEndpoint" />
</service>
</services>
</system.serviceModel>
</configuration>
Есть идеи, почему это не работает?