DELETE-Methode .NET WebAPI funktioniert nicht

Ich habe Unmengen von Beiträgen darüber gesehen, aber die DELETE-Methode meines neuen WebAPI funktioniert einfach nicht und gibt unter Windows 7 32-Bit, IIS 7.5, eine 404 zurück.

ich habe es versucht

Deinstallation von WebDAVHinzufügen von PUT, DELETE, OPTIONS zum ExtensionlessUrlHandler-Integrated-4.0-Handler (und 32-Bit / 64-Bit-Handlern).Zulassen, dass alle Module ausgeführt werden.

Alle ohne Erfolg und alle geben 404 zurück. Wenn ich den Typ DELETE in GET ändere, führt der Dienst den Befehl GET einwandfrei aus.

Jemand mit irgendwelchen anderen Ideen dazu? Es macht mich verrückt.

BEARBEITEN:

Ich rufe die DELETE-Methode folgendermaßen auf (Mediator ist ein Wrapper um den jQuery-Aufruf):

mediator.publish("AjaxCall", {
                url: "/api/files/" + $(a.currentTarget).data("fileid"),
                type: "DELETE",
                }
            });

Und WebAPI:

// DELETE api/<controller>/5
// [HttpDelete] - Tried this too
public void Delete(int fileId)
{
     Files.DeleteFile(fileId);
}

Und relevante web.config:

<handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule" />
    </modules>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage