126 votes

WebAPI Supprimer ne fonctionne pas - 405 method not Allowed

J'apprécie toute l'aide sur ce que le site est censé aller en direct ce soir!

J'ai une web api contrôleur avec la méthode Delete. La méthode s'exécute correctement sur ma machine locale exécutant IIS Express (Windows 8) mais dès que j'ai déployé pour le live serveur IIS (Windows Server 2008 R2) il a cessé de travailler et déclenche le message d'erreur suivant:

Erreur HTTP 405.0 - Méthode Non Autorisée La page que vous recherchez ne peut pas être affichée car une méthode non valide (HTTP Verbe) est utilisé

J'ai cherché sur le web pour des solutions et j'ai mis en place plus raisonnable. Ma configuration web a les paramètres suivants:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
<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>
</system.webServer>

J'ai également essayé de modifier les Mappages de gestionnaires et de Filtrage des demandes dans IIS en vain. Veuillez noter que les Règles de Création WebDAV dans IIS semble être désactivé.

Toutes les idées seront grandement appréciés Merci.

208voto

Chris Points 986

J'ai trouvé la solution finalement! Si vous rencontrez le même problème, ajoutez la ligne suivante à votre site web.config

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
        <remove name="WebDAVModule"/> <!-- ADD THIS -->
    </modules>
    ... rest of settings here

J'espère que cette aide

68voto

aleha Points 992

Dans certains cas, le retrait à partir de modules peuvent produire de l'erreur suivante:

500.21 Gestionnaire "WebDAV" a un mauvais module "WebDAVModule" dans sa liste de module

Module: IIS Web de Base de la Notification: ExecuteRequestHandler"

la solution a été suggéré ici. Également besoin de l'enlever de gestionnaires.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X