2016-06-30 20 views
1

I HttpDelete Dienst in meinem Web Api zu schaffen versuche aber seine nicht funktioniert und dass sie mir die follwoing FehlerHttpDelete funktioniert nicht in Web-Api

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

Mein Service-Code wie folgt implementiert

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

I verwende die folgende HTTP-Anfrage mit Postman Plugin mit HTTPDelete Methode

http://localhost:85/RM.Services/api/Item/DeleteItem?itemId=12 

habe ich die folgende Konfiguration dieses Problem bei web.config

<system.webServer> 
    <modules> 
     <remove name="WebDAVModule" /> 
    </modules> 
    <handlers> 
     <remove name="WebDAV" /> 
    </handlers> 
</system.webServer> 

auch versuchen, die folgenden Einstellungen in web.config

<system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <modules runAllManagedModulesForAllRequests="true"> 
     <remove name="WebDAVModule" /> 
     </modules> 
    </system.webServer> 

aber nichts für mich arbeiten die gleichen Fehler

zu lösen scheint, habe ich versucht, zu entfernen WebDav von IIS mit den folgenden Schritten

  1. gehen zu Control Panel dann Programs and Fetures dann Turn windows features on or off
  2. dann Internet Information Services dann World Wide Web Services dann Common HTTP Features
  3. dann WebDav Features

In diesem Fall entfernen erhielt i 404 Fehler

Jede Hilfe in dieser Frage?

+0

Sende deinen Code für die Aktionsmethode bitte –

+0

check edited Frage –

+0

Bitte Code hinzufügen, wo Sie diese Aktion aufrufen. –

Antwort

1

i die folgende Konfiguration aus Web.config entfernt

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

und halten

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

und jetzt alles funktioniert prima

1

In Web API sollten Sie keine Aktion DeleteItem in Ihre URL einfügen, hier unterscheidet sich das Routing von MVC. Sie sollten mit HTTPDelete Methode aufrufen und diese URL verwenden:

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

Was passiert, wenn ich zwei Aktionsdienste habe, die beide mit 'HTTPDelete' gekennzeichnet sind? Wie lautet die URL? –

+0

die beste Übereinstimmung durch Parameter –

+0

ok ich versuchte dies, aber immer noch nicht funktioniert der gleiche Fehler erscheint 'Handler" WebDAV "hat ein schlechtes Modul" WebDAVModule "in seiner Modulliste" –