我有一個動作我Email
的Web API 2控制器:的Web API 2 DELETE方法總是返回500
[Authorize]
[RoutePrefix("api/Email")]
public class EmailController : ApiController {
//...
[HttpDelete]
[Route("Remove/{id}")]
private void Remove(int id) {
_repo.Remove(id);
}
}
當我打電話從提琴手與DELETE
http://localhost:35191/api/Email/Remove/35571
的動作(或任何其他方法)我得到一個500
返回與通用的IIS錯誤頁面,給我沒有關於錯誤的信息。
看來錯誤發生在我的動作被調用之前,因爲在動作中設置斷點會導致斷點永遠不會被命中。
是否需要某種配置才能在IIS(Express)中使用DELETE
方法?
我已經試過明確允許DELETE
在我的web.config:
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
,但無濟於事。
你有安裝在Fiddler中的SyntaxView(它通常包含關於錯誤的更多細節)? – Milen 2014-10-06 16:48:23
顯示你的路由。你在'ApiController'上有'[RoutePrefix(...)]'屬性嗎?它是'api/Email'嗎?此外,我相信你的控制器類和你的操作方法都必須是「公開」的。 – 2014-10-06 16:49:22
SyntaxView只給我一個IIS給我的HTML頁面的語法高亮版本。 – 2014-10-06 16:49:34