欢迎来到站长天空!

其它服务器

当前位置: 主页 > 服务器 > 其它服务器

让IIS支持.NET Web Api PUT和DELETE请求(返回405的问题)

时间:2025-12-06 03:30:02|栏目:其它服务器|点击:

前言

    有很长一段时间没有使用过IIS来托管应用了,今天用IIS来托管一个比较老的.NET Fx4.6的项目。发布到线上后居然一直调用不同本地却一直是正常的,关键是POST和GET请求都是正常的,只有PUT和DELETE请求是有问题的。经过一番思考忽然想起来了IIS默认情况下拒绝处理PUT和DELETE请求,要支持这两种请求的话需要做一些配置。

HTTP请求 405错误 方法不被允许 (Method Not Allowed)

让IIS支持.NET Web Api PUT和DELETE请求(返回405的问题)

为什么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,选中出问题的站点或应用,可以看到其主页上有个模块功能,如下图所示:

让IIS支持.NET Web Api PUT和DELETE请求(返回405的问题)

双击模块功能,进入其详细页面,可以看到WebDAVModule项,如下图所示:

让IIS支持.NET Web Api PUT和DELETE请求(返回405的问题)

右击WebDAVModule,在右击菜单里点击删除,或者在右侧的操作里点击删除,如下图所示:

让IIS支持.NET Web Api PUT和DELETE请求(返回405的问题)

重启站点或应用,搞定!!!dos或运行下(iisreset /restart)

在应用程序的Web.config配置如下代码[有用]

作用是移除 IIS 中的 "WebDAVModule" 模块,并允许所有请求运行托管模块。这个配置适用于需要使用 PUT 和 DELETE 请求的应用程序或需要托管模块对所有请求进行处理的情况。在实际应用中,请根据需要和安全性考虑进行评估和使用。


 
   
     
   
 

上一篇:IISCrypto(SSL/TLS一键配置工具) iis服务器如何开启tls v1.2协议

栏    目:其它服务器

下一篇:快速安装并配置Windows Server 2022的网卡驱动

本文标题:让IIS支持.NET Web Api PUT和DELETE请求(返回405的问题)

本文地址:https://zz.feitang.co/server/28787.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2025 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号