2009-08-11 6 views
1

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?

Répondre

0

Il se peut que vos paramètres de serveur ne correspondent pas au contrat.

Du côté du serveur:

  • Est-IIS ensemble à l'authentification Windows?
  • Web.config est-il défini sur l'authentification Windows?
  • est-web.config mis à usurper l'identité = true

Je pense que vous manquez le dernier.

+0

@Tom Sur ce, avez-vous recompilé votre client après avoir modifié le OperationBehaviour? – JTew

0

Je suppose que l'appel de la méthode wcf déclenche une exception côté serveur. Avez-vous une infrastructure en place pour capturer les exceptions côté serveur ou les charges utiles? Sinon, utilisez quelque chose comme wcf trace logging pour enregistrer le trafic.

Cela devrait vous donner une erreur plus significative.

Si vous pouvez ajouter cela à votre question, nous pouvons discerner quelle est la cause du problème.

Questions connexes