Domanda

Sto usando ServiceStack con ottimi risultati fino ad ora, se non che fare con gli errori è apparentemente difficile. Se qualcosa va storto durante la serializzazione di un messaggio (perché ho dimenticato di aggiungere un costruttore di default per il messaggio, per esempio) tutto il cliente torna è un messaggio che il server ha avuto un errore interno e un codice di stato di 500. L'aggiunta di un listener per l'evento HttpApplication.Error nel Global.asax non funziona in quanto non viene mai successo. Nemmeno Application_Error. Non solo questo è sufficiente per gli scenari di utente finale, fa il debug di questi errori molto ingombrante come l'unico modo per scoprire cosa è andato storto è questa brutta espressione nel Controllo immediato:

Encoding.Default.GetString( ((System.IO.MemoryStream)((SyncMemoryStream)((System.Net.HttpWebResponse)(((WebException)ex).Response)).ResponseStream))._buffer)

Quello che mi piacerebbe è catturare qualsiasi e tutti gli errori sul lato server (che si tratti di serializzazione da ServiceStack, o gli errori sui miei servizi) e aggiungere le informazioni necessarie per una collezione Errors che tutti i miei tipi di messaggi hanno.

È stato utile?

Soluzione

Validazione e Gestione degli errori pagina wiki per ulteriori dettagli su gestione degli errori e convalida in ServiceStack.

Al momento non v'è alcun modo per gestire un'eccezione serializzazione con logica personalizzata (anche se io ora aggiungere che nella lista TODO:).

Se il DTO Response ha un ResponseStatus di proprietà (vale a dire o eredita da IHasResponseStatus), ServiceStack devono serializzare automaticamente l'eccezione.

Per farlo anche serializzare il set StackTrace DebugMode per vero con SetConfig () nel vostro AppHost.Configure () onLoad script.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top