当前位置: 首页 > news >正文

让IIS支持.NET Web Api PUT和DELETE请求

前言

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

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

图片

为什么IIS拒绝处理PUT和Delete请求?

  1. IIS默认情况下拒绝处理PUT和DELETE请求的原因是出于安全考虑。PUT和DELETE方法被设计为具有写入和删除数据的能力,如果未正确配置和保护,可能会导致潜在的安全漏洞。

  2. 针对这些HTTP方法,微软开发了WebDAV(Web-based Distributed Authoring and Versioning)扩展,它允许用户在Web服务器上直接编辑和管理文件。IIS默认注册了一个名为"WebDAVModule"的自定义HttpModule,用于提供WebDAV支持。

为了防止未经授权的访问和潜在的攻击,IIS默认情况下仅允许GET和POST请求,并拒绝处理PUT和DELETE请求。这样可确保服务器上的文件只能通过受限的方法进行修改和删除。

直接到IIS模块中删除WebDAVModule[不起效果]

图片

图片

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

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

<configuration><system.webServer><modules runAllManagedModulesForAllRequests="true"><remove name="webDAVModule"/></modules><system.webServer>
</configuration>

相关文章:

  • 《web应用技术》第一次课后练习
  • 【热门话题】Yarn:新一代JavaScript包管理器的安装与使用
  • 网络七层模型之数据链路层:理解网络通信的架构(二)
  • Go第三方框架--gin框架(二)
  • 五种免费的Python开发环境及具体下载网址
  • Java与Go:字符串转IP
  • 2.6 IDE(集成开发环境)是什么
  • 最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作教程
  • 【设计模式】中介者模式的应用
  • IDEA或Pycharm设置Python环境报Cannot set up a python SDK的某种解决方案——更换IDEA或Pycharm的版本
  • 高效物联网连接技术创新:ECWAN边缘协同自组网的未来——基于ChirpLAN窄带扩频技术的无线混合组网
  • 用于 Linux 运维的专门发行版,以及工具
  • 创新指南|如何将人工智能应用于未来的创新管理——并不断付诸实践
  • C#手术麻醉信息系统全套商业源码,自主版权,支持二次开发 医院手麻系统源码
  • 微服务—Eureka注册中心
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CSS盒模型深入
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java IO学习笔记一
  • Java 最常见的 200+ 面试题:面试必备
  • js作用域和this的理解
  • Linux下的乱码问题
  • MobX
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • ReactNative开发常用的三方模块
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • vuex 学习笔记 01
  • 从0到1:PostCSS 插件开发最佳实践
  • 汉诺塔算法
  • 欢迎参加第二届中国游戏开发者大会
  • 记一次删除Git记录中的大文件的过程
  • 前端工程化(Gulp、Webpack)-webpack
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 详解移动APP与web APP的区别
  • 小李飞刀:SQL题目刷起来!
  • kubernetes资源对象--ingress
  • 移动端高清、多屏适配方案
  • ​520就是要宠粉,你的心头书我买单
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (30)数组元素和与数字和的绝对差
  • (4)Elastix图像配准:3D图像
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (十三)Flask之特殊装饰器详解
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)创业家杂志:UCWEB天使第一步
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .NET Core中Emit的使用
  • .net mvc 获取url中controller和action
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .Net7 环境安装配置