2016-06-30 60 views
1

我想在我的Web Api创建HttpDelete服务,但它不工作,并给我follwoing错误HttpDelete不是在网络API工作

为实现
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

  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错误

在这个问题上的任何帮助吗?

+0

发布您的操作方法代码请 –

+0

检查编辑问题 –

+0

请在您要调用此操作的位置添加代码。 –

回答

1

我从Web.config

<modules> 
    <remove name="WebDAVModule" /> 
</modules>` 

去除下面的配置,并保持

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

,现在一切工作正常

1

Web API您不应该在您的网址中放置Del​​eteItem动作,这里的路由不同于MVC。你应该叫使用HTTPDelete方法,并使用这个网址:

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

如果我有两个标记为“HTTPDelete”的动作服务,该怎么办? –

+0

最好的匹配参数 –

+0

好吧我试过这个,但仍然不工作同样的错误出现'处理程序“WebDAV”模块列表中有一个坏模块“WebDAVModule” –