J'ai un client d'application console qui parle à un service WCF hébergé par une application console sur un serveur différent. Il utilise l'authentification Windows avec le mode de sécurité = messageWCF: Usurpation d'identité client
Cela fonctionne très bien jusqu'à ce que je change le service pour usurper l'identité des clients. Les changements que je fais pour y parvenir est:
1. Ajouter <serviceAuthorization impersonateCallerForAllOperations="true" />
au comportement de service
2. Ajouter [OperationBehavior(Impersonation = ImpersonationOption.Required)]
à ma signature de la méthode
Je puis héberger mon service et il fonctionne normalement, tout bon.
Dans mon client la seule chose que je fais est d'ajouter:
ChannelFactory<IService1> channel = new ChannelFactory<IService1>(binding, endPoint);
channel.Credentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
je lance alors mon client et obtenir l'erreur:
Le serveur n'a pas fourni une réponse significative; Cela peut être dû à une incompatibilité de contrat, à une fermeture de session prématurée ou à une erreur interne du serveur.
Y a-t-il quelque chose d'autre qui me manque à la configuration du client?
@Tom Sur ce, avez-vous recompilé votre client après avoir modifié le OperationBehaviour? – JTew