2011-03-24 5 views
0

직렬화 문제/기타 오류가있는 경우 400 개의 잘못된 요청이 계속 발생합니다. deserialization 문제가있는 경우 호출 된 메서드에서 중단 점을 설정하여 디버깅하려고하면 충돌하지 않습니다. 어떻게하면이를 가로 채고 응답을 조정하여 세부 정보를 제공 할 수 있습니까?WCF Rest 4.0에서의 오류 처리 템플릿

나는 webprotocolexception에 관한 기사를 보았지만 WCF Rest 온라인 템플릿과 스타터 키트 또는 동일하지 않은 것으로 생각한다. 스타터 키트는 템플릿의 애드온과 같은가요?

감사합니다.

답변

0

RESTful WCF 서비스의 예외 처리는 어렵습니다. deserialization 문제는 사용자 코드가 호출되지 않기 때문에 최악입니다. 프레임 워크는 Exception을 처리하고 단순히 호출자에게 오류를 반환합니다. 이러한 오류를 볼 수있는 방법이 있습니다. Web.config를 통해 WCF에 대한 추적을 구성해야합니다. 여기에 귀하의 컴퓨터에 추적 뷰어를 찾을 수있는 곳뿐만 아니라 과정을 설명하는 링크는 다음과 같습니다

Service Trace Viewer Tool (SvcTraceViewer.exe)

은 불행하게도 그 동작을 조정할 수있는 방법이 없습니다. 하지만 다른 예외의 경우 사용자 정의 IErrorHandler 구현을 사용하여 사용자 정의 HttpBehavior (또는 REST 시작 키트를 사용하는 경우 HttpBehavior2) 구현을 구현하여 예외를 처리 할 수 ​​있습니다.

0

오류 400은 잘못된 요청을 의미합니다.> WCF 수준에서 픽업되며 메서드에 도달하지도 않습니다. 따라서 요청을 살펴보고 JSON을 전달하는 경우 빠른 기회가 잘못된 형식이어야합니다.

나는 WCF REST에서 구현 한 개인 프로젝트를 가지고있어이 오류로 인해 매우 실망 스러웠다. 또한 서버에서 오류 처리 및 오류 코드를 반환하는 것은 텍스트 내용을 반환 할 수 없기 때문에 잔인합니다. HTTP 오류 코드 및 오류 설명 (HTTP 응답의 첫 번째 줄) 만 있으면됩니다. I 은 Bodged 구현이므로 WCF REST를 다시 사용하지 않습니다.

+0

감사의 말로, 나는 이것이 WCF 레벨에서 선택되었고 심지어 방법에 도달하지 못한다는 것을 분명히하지 못했습니다. 나는 서비스의 소비자가 이런 일을 할 필요가 있거나 일어나지 않을 수도 있기 때문에 서비스에 보내기 전에 요청을 살균하는 것이 선택 사항이 아닐 수도 있다고 생각한다. 여기에 언급 된 요청 차단 라인을 따라 무엇이든 틱하고있었습니다 - http://msdn.microsoft.com/en-us/library/ee391967.aspx. 심지어 wcf 나머지 온라인 템플릿 asp.net mvc rest service에 대해 생각하는 좋은 생각인지 확실하지 않습니다. – StudentForever

+0

요청이 잘못된 것으로 간주되어 서비스에서 메소드를 트리거하지 않습니다. 요청 및 서비스 인터페이스 선언을 보여 주면 잘못된 점을 알려줄 수 있습니다. – Aliostad