Bonjour,
Je suis débutant en matière de service WCF et ça fait quelques jours que je suis bloqué, enfin j'ai avancé un peu au fil de l'eau mais la un barrage s'est monté devant moi
Je vais vous résumé ma situation, mon travail est de créer un service de trace. J'ai donc créé un service WCF qui est hébergé sur un service Windows et j'ai déployé ce service sur une autre machine du réseau. J'ai donc créé un client sur ma machine qui vient consommer mon service, et celui-ci permet de créer des fichiers de logs sur la machine qui héberge.
Jusqu'ici aucun problème tout fonctionne.
Or, à présent mon service ne doit plus générer ces fichiers de logs sur la machine qui héberge mais sur un lecteur réseau partagé. Et à ce moment ou j'ai changé le chemin cible de sauvegarde, plus aucun logs se s'enregistre.
En fouillant sur la toile, j'ai cru comprendre qu'il faut utiliser l'emprunt d'identité (impersonation).
J'ai fini par réussir à modifier mon service de sorte à utiliser cette option, mais lorsque j'appelle mon service à partir de mon client, cette erreur survient :
Le serveur a rejeté les informations d'identification du client.
Je vous fait part de quelques bout de code :
La config de mon Service :
La config de mon Client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <system.serviceModel> <services> <service name="ServiceTraceCNP.Service.ServiceTraceCNP" behaviorConfiguration="behaviourConfig"> <endpoint address="net.tcp://10.24.42.119:13500" binding="netTcpBinding" bindingConfiguration="bindingConfig" contract="ServiceTraceCNP.Service.IServiceTraceCNP" /> </service> </services> <bindings> <netTcpBinding> <binding name="bindingConfig"> <security mode="Transport"> <transport clientCredentialType="Windows"/> </security> </binding> </netTcpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="behaviourConfig"> <serviceMetadata httpGetEnabled="true" httpGetUrl="http://10.24.42.119:8080/ServiceTraceCNP"/> <serviceDebug includeExceptionDetailInFaults="True"/> <serviceCredentials> <windowsAuthentication includeWindowsGroups="true" allowAnonymousLogons="false"/> </serviceCredentials> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel>
Méthode de service concerné par l'emprunt d'identité :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <system.serviceModel> <bindings> <netTcpBinding> <binding name="NetTcpBinding_IServiceTraceCNP"> <security mode="Transport"> <transport clientCredentialType="Windows"/> </security> </binding> </netTcpBinding> </bindings> <client> <endpoint address="net.tcp://10.24.42.119:13500/" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IServiceTraceCNP" contract="ServiceTraceCNP.IServiceTraceCNP" name="NetTcpBinding_IServiceTraceCNP"> <identity> <servicePrincipalName value="host/ZDCELH01776EWO" /> </identity> </endpoint> </client> </system.serviceModel>
Ai-je oublié quelque chose ? Je ne sais pas plus quoi faire la.. Je crie à l'aiiiiiiide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [OperationBehavior(Impersonation = ImpersonationOption.Required)] // public void EnregistrerTrace(MyLevel _level, string _module, string _nomMethode, string _message) { ... }
Partager