Размещение WCF в IIS с помощью (Impersonation = ImpersonationOption.Required) - PullRequest
0 голосов
/ 08 июля 2011

У меня есть служба 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>

1 Ответ

0 голосов
/ 08 июля 2011

Судя по сообщению об ошибке, похоже, что вы не указали учетные данные при создании прокси-сервера? Я не делал олицетворения в WCF, но я бы порекомендовал посмотреть учетные данные (либо через файл конфигурации, либо программно при создании прокси).

...