我一直在尝试 ASP.NET 的所有建议解决方法,以便能够通过 HTTP 方法 PUT 和 DELETE 解决我的 REST Web 服务。但是,它们似乎都不起作用。(即删除 WebDAV 处理程序或允许所有动词到 ExtensionlessHandler)。
ASP.NET Core Web API(在 IIS 上)需要什么来允许这两个动词(HTTP PUT 和 DELETE)?
PS:我已经使用 CORS 配置了我们的 Web API 项目,但我正在从同一来源的网页访问 Web 服务。所以这也不是 CORS 问题。
为什么 Web API Core 2 不能区分这些?
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values?name=dave
[HttpGet]
public string Get(string name)
{
return $"name is {name}";
}
Run Code Online (Sandbox Code Playgroud)
这是发生了什么 -
二者http://localhost:65528/api/values并http://localhost:65528/api/values?name=dave引起所述第一Get()方法来执行。
这个确切的代码在 Web Api 2 中工作正常。
我知道有 多种方法可以解决这个问题,但我不知道为什么会发生这种情况。
有人可以解释为什么这已经改变了吗?
routing asp.net-web-api asp.net-web-api-routing asp.net-core-2.0