让IIS支持.NET Web Api PUT和DELETE请求(返回405的问题)
前言
有很长一段时间没有使用过IIS来托管应用了,今天用IIS来托管一个比较老的.NET Fx4.6的项目。发布到线上后居然一直调用不同本地却一直是正常的,关键是POST和GET请求都是正常的,只有PUT和DELETE请求是有问题的。经过一番思考忽然想起来了IIS默认情况下拒绝处理PUT和DELETE请求,要支持这两种请求的话需要做一些配置。
HTTP请求 405错误 方法不被允许 (Method Not Allowed)
为什么IIS拒绝处理PUT和Delete请求?
IIS默认情况下拒绝处理PUT和DELETE请求的原因是出于安全考虑。PUT和DELETE方法被设计为具有写入和删除数据的能力,如果未正确配置和保护,可能会导致潜在的安全漏洞。
针对这些HTTP方法,微软开发了WebDAV(Web-based Distributed Authoring and Versioning)扩展,它允许用户在Web服务器上直接编辑和管理文件。IIS默认注册了一个名为"WebDAVModule"的自定义HttpModule,用于提供WebDAV支持。
为了防止未经授权的访问和潜在的攻击,IIS默认情况下仅允许GET和POST请求,并拒绝处理PUT和DELETE请求。这样可确保服务器上的文件只能通过受限的方法进行修改和删除。
直接到IIS模块中删除WebDAVModule[不起效果]
进入IIS,选中出问题的站点或应用,可以看到其主页上有个模块功能,如下图所示:
双击模块功能,进入其详细页面,可以看到WebDAVModule项,如下图所示:
右击WebDAVModule,在右击菜单里点击删除,或者在右侧的操作里点击删除,如下图所示:
重启站点或应用,搞定!!!dos或运行下(iisreset /restart)
在应用程序的Web.config配置如下代码[有用]
作用是移除 IIS 中的 "WebDAVModule" 模块,并允许所有请求运行托管模块。这个配置适用于需要使用 PUT 和 DELETE 请求的应用程序或需要托管模块对所有请求进行处理的情况。在实际应用中,请根据需要和安全性考虑进行评估和使用。
<configuration> <system.webServer> <modules runAllManagedModulesForAllRequests="true"> <remove name="webDAVModule"/> </modules> <system.webServer> </configuration>
到此这篇关于让IIS支持.NET Web Api PUT和DELETE请求(返回405的问题)的文章就介绍到这了,更多相关IIS支持DELETE/PUT请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Windows Server2022 DHCP服务器配置(图文)
本文详细介绍了在Windows 2022系统中配置DHCP服务器的方法,包括IP地址范围、租约期限等设置,具有一定的参考价值,感兴趣的可以了解一下2023-09-09Windows Server 2008 R2 忘记密码的处理方法
这篇文章主要介绍了Windows Server 2008 R2 忘记密码的处理方法,一般两种方法,一种是软件方法一种是通过系统安装盘实现的,这里久违大家分享一下需要的朋友可以参考下2018-11-11Windows Server 2012 R2或2016无法安装.NET Framework 3.5.1的解决方法
这篇文章主要为大家详细介绍了Windows Server 2012 R2或2016无法安装.NET Framework 3.5.1,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-05-05阿里云云服务器Windows 2008中的FTP配置图文教程
这篇文章主要介绍了阿里云云服务器Windows 2008中的FTP配置图文教程,本文包含创建FTP账号、添加FTP站点、绑定和SSL设置等内容,需要的朋友可以参考下2014-09-09cscript adsutil.vbs 设置iis参数提示拒绝访问的解决方法
今天帮客户网站开启gzip,为了方便用的是批处理版本,本地测试正常服务器上运行出现拒绝访问错误2012-07-07Win2003 R2 SP2 64位服务器系统 配置PHP+IIS6
最近一直在为服务器上的论坛头大,我的论坛用的是Discuz X2,系统是Windows2003 R2 SP2 64位,使用FASTCGI +IIS+PHP的运行环境2012-07-07
最新评论