2016-06-30 26 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」 –