У меня есть служба WCF (MyService.svc), которую я размещаю под IIS 7.5.Мой .svc находится в том же виртуальном каталоге, что и само веб-приложение.Я пытаюсь заставить некоторые из моих сервисных операций требовать олицетворения пользователя:
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
Я использовал basicHttpBinding с:
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm"/>
</security>
После публикации я захожу на http: ///MyService.svc.Это когда я получаю следующую ошибку:
The contract operation 'HelloWorld' requires Windows identity for automatic impersonation. A Windows identity that represents the caller is not provided by binding ('BasicHttpBinding','http://tempuri.org/') for contract ('IMyService','http://MyService'.
* Обновление / исправление * Я нашел свою проблему.Я не предоставлял компонент namespace моего сервисного имени в web.config.Это делало все это бесполезным.
<services>
<service name="**MyNamespace**.MyService" behaviorConfiguration="MyServiceBehavior">
...
</service>
</services>