Nous avons un/ ASP.NET Core 2.0 site Web qui présente également quelques méthodes simples Web API à des fins d’amélioration de l’UI.
Les appels API Web fonctionnent comme prévu lors de l'exécution locale sous IIS Express , mais lorsque nous déployons sur notre serveur Web IIS 8.5 production, nous obtenons ce qui suit erreur lors des requêtes HTTP DELETE
et PUT
...
405 Method Not Allowed
Après quelques recherches sur le Web, nous avons trouvé plusieurs publications suggérant la suppression du module IIS WebDAV . Nous l'avons désactivé dans IIS (c'est notre serveur) et nous avons également essayé les solutions suivantes:
Allow verb filtering = False
aspNetCore
, WebDAV
et ExtensionlessUrlHandler-Integrated-4.0
Aucune des étapes ci-dessus n'a résolu notre problème.
Tout conseil/direction serait très apprécié.
Après des heures de recherche et d'essais et d'erreurs, la solution semble être assez simple. Ajoutez un fichier Web.config
à votre .NET Core 2.0 application:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- To customize the asp.net core module uncomment and edit the following section.
For more info see https://go.Microsoft.com/fwlink/?linkid=838655 -->
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="aspNetCore" />
<remove name="WebDAV" />
<!-- I removed the following handlers too, but these
can probably be ignored for most installations -->
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="aspNetCore"
path="*"
verb="*"
modules="AspNetCoreModule"
resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%"
arguments="%LAUNCHER_ARGS%"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>
J'espère que cela t'aides.
C'est ce qui a fonctionné pour moi (netcore 2.0)
<system.webServer>
<modules runAllManagedModulesForAllRequests="false">
<remove name="WebDAVModule" />
</modules>
</system.webServer>
Trouvé ici: https://www.ryadel.com/fr/error-405-methods-not-allowed-asp-net-core-put-delete-requests/
Pour empêcher l'activation de WebDav, supprimez l'entrée suivante dans ApplicationHost.config:
<add name="WebDAVModule" />
L'entrée est située dans la section modules.
Emplacement exact de la configuration:
C:\Windows\System32\inetsrv\config\applicationHost.config
Cela a bien fonctionné pour moi dans .Net Core 2.1
Supprimez la publication WebDAV du serveur IIS. Il entre dans le service Internet Infromation -> Fonctionnalités HTTP communes