這是我的服務代碼。我像所有最佳實踐文章中提到的那樣拋出一個錯誤 - 以WebFaultException的形式出現。從WCF中的ASP.NET RESTful webservice返回錯誤的最佳實踐
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class API
{
[OperationContract]
[WebGet()]
public int MyMethod()
{
throw new WebFaultException<string>("TESTERROR", HttpStatusCode.BadRequest);
}
}
現在,當發送到http://localhost:1389/API.svc/MyMethod
我得到的請求是這樣的JSON對象:
{ 「ExceptionDetail」:空, 「ExceptionType」:空, 「消息」:「服務器是由於內部錯誤而無法處理請求有關錯誤的更多信息,請在服務器上啓用IncludeExceptionDetailInFaults(來自ServiceBehaviorAttribute或來自配置行爲),以便將異常信息發回給客戶端,或者打開根據Microsoft .NET Framework 3.0 SDK文檔進行跟蹤並檢查服務器跟蹤日誌。「,」StackTrace「:null}
我試着在我的web.config中啓用includeExceptionDetailInFaults
,這個消息確實有點改變,但是我仍然沒有在任何地方看到我的「TESTERROR」!
我知道我可以構建任何我想要的,使用HttpContext.Current例如...但我們所記錄的方式返回錯誤一個JSON RESTful WCF服務? – Alex
我不認爲有官方的標準迴應。但有一個共同的答案(編輯我的答案) – Sinaesthetic
yap,感謝編輯,但我的意思是 - 如果在.NET中有任何內置機制允許返回這種類型的數據。不要猜...好吧,我會等幾天才結束問題,謝謝 – Alex