HttpDelete不能在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;
        }
    }

我使用以下http请求使用Postman插件使用HTTPDelete方法

  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

    Control Panel, Programs and Fetures, Turn windows features on or off
  1. > Internet Information Services> World Wide Web Services> Common HTTP Features
  2. 然后删除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>`

和keep

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

现在一切正常

相关内容

  • 没有找到相关文章

最新更新