我有一個的WebAPI控制器ASP.NET的WebAPI返回的HTTP 405
[RoutePrefix("api/invitations")]
public class InvitationsApiController : ApiController
和動作方法:
[Route]
[HttpPost]
public IHttpActionResult Create([FromBody] CreateCommand command)
當我嘗試發佈到http://host/api/invitations,我收到了「「405不允許的方法」
但是當我使用另一條路線,如:
[Route("test")]
[HttpPost]
public IHttpActionResult Create([FromBody] CreateCommand command)
個
WebApiConfig.cs
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
SetupFormatters(config);
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });
}
而發表的帖子中http://host/api/invitations/test其工作。我有控制器,在請求「root」時完美工作。在HTTP錯誤
更多細節:
HTTP Error 405.0 - Method Not Allowed The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.
Detailed Error Information:
Module DefaultDocumentModule
Notification ExecuteRequestHandler
Handler StaticFile Error
Code 0x80070001
Requested URL http://localhost:8008/api/invitations
Physical Path <removed>
Logon Method Anonymous
Logon User Anonymous
任何建議可能是什麼問題?
你有路線衝突嗎? 2種方法以相同的方式裝飾? –
你恰好在'〜/ api/invitations'路徑中有物理/虛擬目錄嗎?否則,你將不得不顯示你的'Web.Config' ... – haim770
從你的方法中刪除[Route]屬性或將其更改爲[Route(「」)] – HaukurHaf