【Azure 应用服务】如何让App Service 支持 Delete 方法 - LuBu0505/My-Code GitHub Wiki

问题描述

如何让webapp 支持 delete 方法? 在不修改设置的情况下,调用DELETE方法出现405错误 - 方法不被允许  No alt text provided for this image

问题解决

基于当前App Service在Windows的环境中运行,所以可以使用配置IIS的方式在web.config中对Delete方法进行允许访问,正确的设置如下:

<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <verbs applyToWebDAV="false">
               <add verb=" DELETE" allowed=" true" />
            </verbs>
         </requestFiltering>
      </security>
   </system.webServer>
</configuration> 

:如果App Service中不包含web.config,可以进入Kudu站点( *https://.scm.chinacloudsites.cn/DebugConsole *)创建,或者在您的项目文件根目录中创建后一起部署到App Service

如是PHP项目应用,文件中需要加上PHP Handler 设置(以PHP 7.3版本举例,需根据实际情况修改):

<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <verbs applyToWebDAV="false">
               <add verb=" DELETE" allowed=" true" />
            </verbs>
         </requestFiltering>
      </security>
   </system.webServer>
   <handlers>
        <remove name="PHP73x86_via_FastCGI" /> 
        <!-- We instruct to delete the existing handler with that name -->
        <add name="PHP73x86_via_FastCGI" path="*.php" verb="GET,HEAD,POST,DELETE" modules="FastCgiModule" scriptProcessor="D:\Program Files (x86)\PHP\v7.3\php-cgi.exe" resourceType="Either" /> 
        <!-- We give the new values for the handler. It is basically the  old handler but we added the DELETE method to the verbs -->
    </handlers>
</configuration> 

参考资料

拒绝HTTP请求方法的示例(Configuration Sample)https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/verbs/#configuration-sample

⚠️ **GitHub.com Fallback** ⚠️