HttpDelete 在 Web 中不起作用 Api

HttpDelete not working in Web Api

我正在尝试在我的 Web Api 中创建 HttpDelete 服务,但它不起作用并给我以下错误

Handler "WebDAV" has a bad module "WebDAVModule" in its module list

我的服务代码实现如下

   [HttpDelete]
    public string DeleteItem(long itemId)
    {
        try
        {
            // Implementation goes here
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

我正在使用 Postman 插件使用 HTTPDelete 方法

使用以下 http 请求
  http://localhost:85/RM.Services/api/Item/DeleteItem?itemId=12 

我在 web.config

使用以下配置解决了这个问题
<system.webServer>
    <modules>
        <remove name="WebDAVModule" />
    </modules>
    <handlers>
        <remove name="WebDAV" />
    </handlers>
</system.webServer>

也在 web.config

中尝试以下设置
  <system.webServer>
      <validation validateIntegratedModeConfiguration="false" />
      <modules runAllManagedModulesForAllRequests="true">
        <remove name="WebDAVModule" />
      </modules>
  </system.webServer>

但对我没有任何作用出现同样的错误

我尝试通过以下步骤从 IIS 中删除 WebDav

  1. 转到 Control Panel 然后 Programs and Fetures 然后 Turn windows features on or off
  2. 然后 Internet Information Services 然后 World Wide Web Services 然后 Common HTTP Features
  3. 然后删除 WebDav Features

在这种情况下,我收到 404 错误

对这个问题有什么帮助吗?

Web API 中,您不应该在 URL 中放置操作 DeleteItem,这里的路由不同于 MVC。您应该使用 HTTPDelete 方法调用并使用此 url:

http://localhost:85/RM.Services/api/Item/12 

我从 Web.config

中删除了以下配置
<modules>
    <remove name="WebDAVModule" />
</modules>`

并保持

<handlers>
    <remove name="WebDAV" />
</handlers>

现在一切正常