J'ai un WebService avec des sites ASP.NET et des services WCF dans le même web.config. Jusqu'à présent, j'ai pu utiliser le impersionation ASP.NET dans les services WCF en mettantImpersion comme dans ASP.NET pour le service WCF
<system.web>
<compilation targetFramework="4.0" debug="false"/>
<!-- switch custom errors of-->
<identity impersonate="true"/>
<customErrors mode="Off"/>
</system.web>
Cependant, maintenant (pour d'autres raisons-> Etat pour la session sans cookies partie ASP.NET) Je dois régler la
aspNetCompatibilityEnabled="true"
option à false. Avec cela, je perds l'impersion ASP.NET pour les services WCF. Un de mes services WCF a besoin d'une conversion pour les opérations d'E/S sur le serveur ... Je voudrais savoir comment obtenir la même incohérence que j'avais auparavant en la définissant directement sur la configuration du service WCF.
Ce que j'ai essayé (unsucessfully) est de mettre
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
sur la mise en œuvre des méthodes du service WCF puis en spécifiant
<endpoint address="" binding="wsHttpBinding" contract="IService">
<identity>
<servicePrincipalName value="HOST/YourMachineName" />
<dns value="" />
</identity>
</endpoint>
dans le web.config (évidemment avec le les valeurs correctes pour mon service), comme décrit dans http://msdn.microsoft.com/en-us/library/ff650591.aspx.
Cependant, le service WCF ne peut plus être appelé après cela ... Il me dit que le WsHttpBinding n'offre pas une identité pour le contrat.
Ai-je oublié quelque chose d'important?
Edit: Traduction du message d'erreur:
: L'opération de contrat '{0}' identité nécessite Windows pour usurpation d'identité automatique. Une identité Windows qui représente l'appelant n'est pas fournie par la liaison ('{1}', '{2}') pour le contrat ('{3}', '{4}'
(Le message d'erreur original était allemand...)
_ "n'offre pas d'identité pour le contrat" _ - veuillez indiquer le message d'erreur exact. – CodeCaster