J'ai le texte suivant décorées sur mon service
<ExceptionShielding("MyExceptionPolicyName")>
lorsqu'une anomalie exception est levée, ma politique ramasse l'erreur et qui se connecte à l'amende juste. Il prend la handlingInstance Id et l'enregistre avec l'erreur de renvoi. Ce que j'ai remarqué, est le Guid retourné dans la Faute "Erreur de code:" est différent de celui que l'on est passé dans le traitement instanceId.
J'ai aussi essayé de décorer l'opération comme
<FaultContract(GetType(ValidationFault))>
mais cela produit les mêmes résultats.
Ce que j'aimerais faire, c'est une façon de capture que "l'ID d'Erreur:" transmises au consommateur, de sorte que je peux me connecter avec l'exception. *plus d'infos: la politique d'exception handler est un programme personnalisé qui prend une exception, et il enregistre les différentes propriétés et les données dans une exception spécifique journal db schéma.
Quelqu'un sait comment faire cela?
Mise à JOUR: par @Jay Patel 's commentaire, j'ai ajouté à ma config pour activer le suivi
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "c:\Temp\Traces.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
J'ai ensuite exécuté une demande pour obtenir une réponse d'erreur protégé par l'exception de blindage. Le défaut de réponse de la chaîne est formaté comme suit: "Une erreur s'est produite lors de la consommation de ce service. Veuillez contacter votre administrateur pour plus d'informations. ID d'erreur: {GUID}"
J'ai ensuite regardé le journal de suivi, et n'a trouvé aucune preuve de l'GUID ou de cette chaîne.
Voici le pastebin lien vers le tracelog pour quiconque se soucie de voir, par exemple, lors de l'utilisation de ExceptionShielding.
UPDATE2:
Encore une fois, par @Jay Patel commentaire, ajouter cet. J'ai essayé -1 et max int valeur pour le maxMessageLog pour s'assurer que je suis la plus grande quantité de données dans une session.
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="2147483647" />
</diagnostics>
Le journal n'est pas utile. Il comprend rien de rien, même à proximité pour répondre à ma question.
À préciser dans le cas où il n'est pas clairement indiqué ci-dessus... je veux être en mesure de capturer le GUID après la "ID d'Erreur:" dans le message vers le client, donc je peux me connecter avec l'exception qui est connecté par le gestionnaire d'exception. De cette façon, les clients peuvent contacter l'Administrateur", comme le dit le message avec l'ID d'Erreur, et d'être en mesure de trouver quelque chose.
Voici la trace complète activé pastbin