J'ai un service WCF qui fonctionne parfaitement, et quelque chose a changé et je ne sais pas quoi.
J'obtiens cette exception:
System.ServiceModel.FaultException: le serveur n'a pas pu traiter la demande en raison d'une erreur interne. Pour plus d'informations sur l'erreur, activez IncludeExceptionDetailInFaults (à partir de ServiceBehaviorAttribute ou du comportement de configuration) sur le serveur afin de renvoyer les informations d'exception au client, ou activez le traçage selon la documentation du SDK Microsoft .NET Framework 3.0 et inspectez les journaux de suivi du serveur.
C'est déroutant car j'utilise .NET 4.0.
Où dois-je allumer IncludeExceptionDetailInFaults
? Je me bats pour le trouver.
la source
C'est dans le fichier app.config.
la source
Si vous voulez faire cela par code, vous pouvez ajouter le comportement comme ceci:
la source
ServiceHost
instance d'objet: Exemple:ServiceHost serviceHost = new ServiceHost(Program.serviceInstance);
Vous pouvez également le définir dans la balise [ServiceBehavior] au-dessus de votre déclaration de classe qui hérite de l'interface
Immortal Blue a raison de ne pas divulguer les détails de l'exception à une version publiée publiquement, mais à des fins de test, il s'agit d'un outil pratique. Éteignez toujours lorsque vous relâchez.
la source
J'obtenais également la même erreur, le WCF fonctionnait correctement pour moi lorsque je l'utilisais dans l'environnement de développement avec mes informations d'identification, mais lorsque quelqu'un d'autre l'utilisait dans TEST, il lançait la même erreur. J'ai fait beaucoup de recherches, puis au lieu de faire des mises à jour de configuration, j'ai géré une exception dans la méthode WCF à l'aide de l'exception d'erreur. L'identité du WCF doit également être définie avec les mêmes informations d'identification que celles qui ont accès à la base de données, quelqu'un peut avoir changé votre autorité. Veuillez trouver ci-dessous le code pour le même:
dans votre service1.svc.cs, vous pouvez utiliser ceci dans le bloc catch:
Et utilisez ceci dans l'application client comme le code ci-dessous:
Essayez simplement ceci, cela aidera à coup sûr à obtenir le problème exact.
la source
la source