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