Я работаю над реализацией подхода WCF, не относящегося к web.config, с использованием атрибута factory в файле .svc для Публикация в блоге Рика Строля :
Factory = "System.ServiceModel.Activation.WebScriptServiceHostFactory"
Локально, я использую IIS7 в Visual Studio 2008 и у меня нет проблем, но при развертывании на моем веб-сервере (в настоящее время работающем IIS6) я получаю ошибку аутентификации в журнале событий:
Исключение:
System.ServiceModel.ServiceActivationException:
Сервис
'/Services/ResourcesService.svc'
не может быть активирован из-за
исключение во время компиляции.
сообщение об исключении: указан IIS
схемы аутентификации
«IntegratedWindowsAuthentication,
Аноним », но только обязательный
поддерживает спецификацию ровно одного
схема аутентификации. действительный
схемы аутентификации дайджест,
Переговоры, NTLM, Basic или Anonymous.
Измените настройки IIS, чтобы только
используется единая схема аутентификации.
---> System.InvalidOperationException: указанные IIS схемы проверки подлинности
«IntegratedWindowsAuthentication,
Аноним », но только обязательный
поддерживает спецификацию ровно одного
схема аутентификации. действительный
схемы аутентификации дайджест,
Переговоры, NTLM, Basic или Anonymous.
Измените настройки IIS, чтобы только
используется единая схема аутентификации.
в
System.ServiceModel.Web.WebServiceHost.SetBindingCredentialBasedOnHostedEnvironment (ServiceEndpoint
serviceEndpoint, AuthenticationSchemes
supportSchemes) в
System.ServiceModel.Web.WebServiceHost.AddAutomaticWebHttpBindingEndpoints (ServiceHost
хост, IDictionary`2
agedContracts, String
multipleContractsErrorMessage) в
System.ServiceModel.WebScriptServiceHost.OnOpening ()
в
System.ServiceModel.Channels.CommunicationObject.Open (TimeSpan
тайм-аут) в
System.ServiceModel.Channels.CommunicationObject.Open ()
в
System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService (String
normalizedVirtualPath) в
System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable (String
normalizedVirtualPath)
После некоторого поиска в Google я изменил настройки аутентификации в папке .svc в моем проекте (на сервере) только на анонимную аутентификацию, но она не сработала. Я все еще получаю сбой веб-службы на вызовах. В IIS7 по умолчанию был только аноним.
У меня нет записей в моем web.config для сервисов (я удалил их согласно этому шаблону).
Я использую скрипт nant для развертывания веб-сайта на сервере и использую его также локально, чтобы убедиться, что скрипт не вызывает проблему.
Любая известная проблема с этим? IIS 6 не в состоянии справиться?