2011-01-14 3 views
7

저는 ServiceStack을 지금까지 사용해 왔습니다만, 오류 처리가 까다로울뿐입니다. 예를 들어 메시지에 기본 생성자를 추가하는 것을 잊어 버렸기 때문에 메시지의 serialization 중에 문제가 발생하면 모든 클라이언트는 서버에 내부 오류 및 상태 코드 500이라는 메시지를 반환합니다. Global.asax의 HttpApplication.Error 이벤트는 절대로 안타를 맞춰 작동하지 않습니다. Application_Error도 마찬가지입니다. 내가 원하는 것은 캐치ServiceStack : 오류 처리 방법은 무엇입니까?

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

입니다 :뿐만 아니라 그것은 무엇을 잘못하면 간략한 조사에서이 추악한 표현 밖으로 찾을 수있는 유일한 방법은 매우 성가신 이러한 오류를 디버깅하게, 최종 사용자 시나리오에 대해이 부족하다 서버 측의 모든 오류 (ServiceStack에 의한 직렬화 또는 서비스상의 오류 일 수 있음) 모든 메시지 유형에있는 Errors 컬렉션에 필요한 정보를 추가하십시오.

+0

ServiceStack이란 무엇입니까? –

+0

http://www.servicestack.net/ – JulianR

답변

11

ServiceStack의 오류 처리 및 유효성 검사에 대한 자세한 내용은 ServiceStack의 Validation and Error handling wiki 페이지를 참조하십시오.

현재 사용자 정의 논리로 직렬화 예외를 처리 할 방법이 없습니다 (이제는 TODO 목록에 추가 할 예정 임).

응답 DTO에 ResponseStatus 속성 (즉, IHasResponseStatus에서 상속)이 있으면 ServiceStack에서 예외를 자동으로 serialize해야합니다.

또한 StackHrace를 AppHost.Configure() onload 스크립트에서 SetConfig()를 사용하여 DebugMode을 true로 serialize 할 수 있습니다.