ho il seguente decorato sul mio servizioWCF ExceptionShielding ID errore non corrisponde con handlingInstanceId passato al Handler
<ExceptionShielding("MyExceptionPolicyName")>
quando viene generata un'eccezione di errore, la mia politica raccoglie l'errore e log in bene. Prende l'ID di gestione della sostanza e lo registra insieme all'errore come riferimento. Quello che sto notando, è il Guid restituito nell'errore "ID errore:" è diverso da quello passato nel codice di istanza di gestione.
ho provato anche per decorare l'operazione in questo modo
<FaultContract(GetType(ValidationFault))>
ma questo produce gli stessi risultati.
Quello che mi piacerebbe fare è un po 'come catturare quel "ID errore:" restituito al consumatore in modo che possa accedere con l'eccezione. * informazioni aggiuntive: il gestore criteri di eccezione è personalizzato e accetta un'eccezione e registra le varie proprietà e dati in uno schema db del registro eccezioni specifico.
Qualcuno sa come realizzare questo?
UPDATE: per commentare @Jay Patel s', ho aggiunto questo al mio config per attivare l'analisi
<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>
ho quindi eseguito una richiesta per ottenere una reazione all'anomalia protetta da una schermatura eccezione. La stringa di risposta all'errore è formattata in questo modo: "Si è verificato un errore durante il consumo di questo servizio .Per ulteriori informazioni contattare l'amministratore ID errore: {GUID}"
Ho quindi visualizzato il registro di traccia e non ho trovato alcuna prova del GUID o questa stringa.
Ecco il link per il pastebin TraceLog per tutti coloro che si preoccupa per vedere un esempio di uno quando si utilizza ExceptionShielding.
UPDATE2:
Anche in questo caso, per il commento di @Jay Patel, ha aggiunto questo. Ho provato -1 e il valore int massimo per il maxMessageLog per garantire che sto ottenendo la maggior quantità di dati nel registro.
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="2147483647" />
</diagnostics>
Il registro non è utile. Include niente su qualcosa che sia ancora vicino alla mia domanda.
Per chiarire nel caso in cui non è chiaro al di sopra ... io voglio essere in grado di catturare il GUID dopo il "ID errore:" nel messaggio al client in modo da poter accedere con l'eccezione che è registrato dal gestore delle eccezioni. In questo modo i clienti possono contattare l'"Amministratore" come dice il messaggio con l'ID errore, ed essere effettivamente in grado di trovare qualcosa.
Ecco la traccia completa abilitata pastbin
Quindi, ho già messo una taglia una volta su questo. Se qualcuno ad un certo punto si avvicina a una risposta, farò il possibile per rinunciarvi a una taglia di 50 punti (non sono nemmeno sicuro se riuscite a farlo, ma se arriva una risposta e mi piace, Pubblicherò una taglia e ricompenserò quella persona ... se è un no no qui sullo stack ... beh ... ti darò un cinque virtuale e dirò grazie :) – wakurth
Non che sarebbe di aiuto ma hai te provato la registrazione usando Traccia in [Traccia WCF] (http://msdn.microsoft.com/en-us/library/ms733025.aspx) Vedi lo stesso ID di errore qui? –
Non ho. Controllerò. La società per cui lavoro ha un contatto presso la MS, a cui ho inviato questa domanda, e mi è stato detto che l'avrebbero passata al team EntLib in MS e mi avrebbe dato una risposta. Nel frattempo, proverò il tracciamento WCF e vedrò se è utile indicarmi la direzione di come acquisire questo valore sul lato server. Grazie. – wakurth