2012-02-17 78 views
3

我想拋出一個HttpResponseException(HttpStatusCode.NotFound),我收到以下錯誤WCF的WebAPI HttpResponseException問題

通過此異常的響應屬性返回的響應消息,應立即返回給客戶端。不需要進一步處理請求消息。

我已經然而除去所有的代碼在我的方法,我只是拋出這樣

[WebGet] 
public MyData Get() 
{ 
    throw new HttpResponseException(HttpStatusCode.NotFound); 
} 

例外。如果我改變我的方法返回一個HttpResponseMessage我可以讓它正常工作,它不能解決問題,我無法讓我的身份驗證操作處理程序工作,但無法拋出HttpResponseException

回答

0

嘗試使用WebFaultException返回在WCF HTTP狀態代碼...

throw new WebFaultException(HttpStatusCode.NotFound); 
+0

是偉大的工作,但由於某種原因,如果我使用未經授權的狀態代碼,我仍然獲得了404? – Stuart 2012-02-18 09:36:14

+0

@Stuart你有任何操作/消息處理程序可能會導致404? – 2012-02-18 09:40:23

+0

@AntonyScott我擁有的唯一處理程序是我從哈克文章中複製的授權處理程序。它只會拋出未經授權的例外。 – Stuart 2012-02-18 09:52:15