Asp.net 远程服务器返回错误:(405)方法不允许
我试图研究这个问题,但是失败了,所以我在这里问这个问题。我有一个调用WebAPI的MVC应用程序。其中一个方法返回405错误,我不知道为什么,尤其是同一控制器中的所有其他方法都工作得非常好 这就是我从MVC端调用此方法的方式:Asp.net 远程服务器返回错误:(405)方法不允许,asp.net,asp.net-web-api,routing,asp.net-web-api2,http-status-code-405,Asp.net,Asp.net Web Api,Routing,Asp.net Web Api2,Http Status Code 405,我试图研究这个问题,但是失败了,所以我在这里问这个问题。我有一个调用WebAPI的MVC应用程序。其中一个方法返回405错误,我不知道为什么,尤其是同一控制器中的所有其他方法都工作得非常好 这就是我从MVC端调用此方法的方式: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Format("{0}/api/Account/ArchiveAddress?addressId={1}", uri, addressId)
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Format("{0}/api/Account/ArchiveAddress?addressId={1}", uri, addressId));
request.Method = "Get";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
catch (Exception e)
{
return RedirectToAction("Error", "Error", new { error = e.Message });
}
其中uri是字符串:
http://localhost:52599
addressId是一个int
我在Web API端的方法如下所示:
[Route("ArchiveAddress")]
public IHttpActionResult ArchiveUserAddress(int addressId)
{
var address = _addressRepo.Find(addressId);
...
正如我所说,我以完全相同的方式在API上调用了许多不同的方法,它们都工作得很好。只是这个人不想表现。可能是什么原因造成的?我认为您需要使用
[HttpGet]
属性来修饰您的操作方法(ArchiveUserAddress
),或者将其命名为以Get…
开头的东西,例如GetArchiveUserAddress
。目前,它确实与POST
方法相匹配,这意味着没有getter,因此会出现错误