2012-05-29 39 views
0

我需要能夠響應HTTP狀態代碼爲204的請求,但是appharbor只返回500錯誤。我的控制器代碼正在正確執行,但是當下面的代碼被調用時,我只能在提琴手中看到一個500錯誤。AppHarbor MVC - 無法使用HttpNoContent狀態代碼

protected ViewResult HttpNoContent() 
{ 
    Response.StatusCode = (int)HttpStatusCode.NoContent; 

    return View("NoContent"); 
} 
+0

爲什麼你返回204(NoContent)狀態碼的視圖? NoContent視圖是否存在?你通常會爲此返回一個'EmptyResult'。 –

+0

這是fitbit的一個終端,他們要求我們在請求完成時返回204。 – Phil

+0

我明白,但204狀態碼意味着你需要返回一個空的內容,即沒有內容。在你的例子中,你正在返回一個視圖。這是矛盾的。 –

回答

4

specification報價(我已經把重要部分以粗體顯示):

204響應必須不包括消息體,因此總是 由所述第一終止在標題字段之後的空行。

您不尊重這條規則。 204狀態碼意味着沒有內容,但你正在返回一個視圖。嘗試返回EmptyResult

protected ViewResult HttpNoContent() 
{ 
    Response.StatusCode = (int)HttpStatusCode.NoContent; 

    return new EmptyResult(); 
}