Frage

Ich verwende ServiceStack mit sehr guten Ergebnissen bisher, außer, dass Umgang mit Fehlern scheinbar heikel ist. Wenn etwas schief geht bei der Serialisierung einer Nachricht (weil ich vergessen, einen Standard-Konstruktor auf die Nachricht zum Beispiel hinzufügen) alle Client bekommt wieder eine Nachricht ist, dass der Server einen internen Fehler und ein Statuscode 500 einen Zuhörer Hinzufügen musste das HttpApplication.Error Ereignis in der Global.asax nicht funktioniert, wie es nie getroffen wird. Genauso wenig wie Application_Error. Dies ist nicht nur unzureichend für Endanwender Szenarien, macht es diese Fehler Debuggen sehr umständlich als den einzigen Weg, um herauszufinden, was schief gelaufen ist dieser hässliche Ausdruck im Quick Watch:

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

Was ich möchte, ist, irgendwelche und alle Fehler auf der Server-Seite fangen (sei es Serialisierung von ServiceStack oder Fehler auf meine Dienste) und fügen Sie die erforderlichen Informationen an eine Errors Sammlung, dass alle meine Nachrichtentypen haben.

War es hilfreich?

Lösung

See ServiceStack's Validation and Error handling wiki page for more details about error handling and validation in ServiceStack.

At the moment there is no way to handle a serialization exception with Custom logic (although I will now add that on the TODO list :).

If your Response DTO has a ResponseStatus property (i.e. or inherits from IHasResponseStatus), ServiceStack should automatically serialize your exception.

To also get it to serialize your StackTrace set DebugMode to true with SetConfig() in your AppHost.Configure() onload script.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top