У меня есть клиент консольного приложения, который общается со службой WCF, размещенной консольным приложением на другом сервере. Это использует проверку подлинности Windows с режимом безопасности = сообщение
Работает просто отлично, пока я не изменю службу для олицетворения учетных данных клиентов. Для этого я внес следующие изменения:
1. Добавьте <serviceAuthorization impersonateCallerForAllOperations="true" />
к поведению службы
2. Добавьте [OperationBehavior(Impersonation = ImpersonationOption.Required)]
к моей подписи метода
Затем я размещаю свой сервис, и он работает как обычно, все хорошо.
В моем клиенте я только добавляю:
ChannelFactory<IService1> channel = new ChannelFactory<IService1>(binding, endPoint);
channel.Credentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
Затем я запускаю свой клиент и получаю ошибку:
Сервер не предоставил значимого ответа; это может быть вызвано несоответствием контракта, преждевременным завершением сеанса или внутренней ошибкой сервера.
Что-то еще мне не хватает, что мне нужно сделать с конфигурацией клиента?