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

iis,支持,net,web,api,put,delete,请求 · 浏览次数 : 157

小编点评

## IIS拒绝处理 PUT 和 DELETE 请求的原因: 由于 IIS 默认拒绝处理 PUT 和 DELETE 请求,这是出于安全考虑的,以防止潜在的攻击。 PUT 和 DELETE 方法被设计为具有写入和删除数据的能力,如果未正确配置和保护,可能会导致潜在的安全漏洞。 ## 解决方法: * 可以使用 **WebDAV** 来允许 PUT 和 DELETE 请求。 * 可以使用 **HttpModule** 来实现 WebDAV 功能。 * 将 **WebDAVModule** 从 **Web.config** 中移除。 **示例代码:** ``` ``` **其他建议:** * 在使用 WebDAV 时,要注意对文件和目录的访问权限控制。 * 确保 PUT 和 DELETE 方法只用于对服务器上授权的用户可见的数据。 * 对 WebDAV 的配置进行妥善的评估,确保安全性。

正文

前言

    有很长一段时间没有使用过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>

 

与让IIS支持.NET Web Api PUT和DELETE请求相似的内容:

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

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

让代码优雅起来:记一次代码微重构实践

重构不仅能够提高代码质量,让代码优雅起来,同时也能让我们学以致用。我们所学的设计思想、原则、模式等理论知识,往往在重构中能够真正实践。

让人眼前一亮的应用「GitHub 热点速览」

大开眼界的一期 GitHub 热门项目,类似 Django 存在的 pynecone,搞定 Windows、Office 激活的 Microsoft-Activation-Scripts,都让我的收藏夹蠢蠢欲动。最不能错过的应该是 hyperswitch,搞定你的支付业务。当然,还有 GitHub

让SQL起飞(优化)

最近博主看完了《SQL进阶教程》这本书,看完后给博主打开了SQL世界的新大门,对于 SQL 的理解不在局限于以前的常规用法。借用其他读者的评论, ❝ 读完醍醐灌顶,对SQL做到了知其然更能知其所以然。全书从头到尾强调了 SQL的内在逻辑是基于集合论和谓词逻辑,而着两条主线恰恰在使用SQL起到了至关重

让开发者成为决定性力量,华为开发者英雄汇圆满落幕

摘要:与华为云开发者联盟,共同回顾精彩瞬间。 本文分享自华为云社区《让开发者成为决定性力量,华为开发者英雄汇圆满落幕》,作者: 华为云社区精选。 11月9日,华为全联接大会2022“华为开发者英雄汇”于线上线下同步举行。现场解读华为多元生态协同、全链路赋能开发者策略,分享优秀开发者实践故事,重磅发布

让你的文档从静态展示到一键部署可操作验证

用户在根据文档进行操作时,会出现根据文档内容搭建环境困难、代码调试失败、功能无法使用的情况,主要是由于文档中有年久失修、没人维护、无法跑通的代码,给用户快速上手带来很多的挑战。为了解决文档中的这些用户体验问题,通过函数计算的能力让阿里云的文档从静态展示升级为动态可操作验证,用户在文档中单击一键部署可

让创意在幻觉中肆虐: 认识Illusion Diffusion AI

人工智能新境界 在不断发展的人工智能领域,一款非凡的新工具应运而生,它能将普通照片转化为绚丽的艺术品。敬请关注Illusion Diffusion,这是一个将现实与想象力完美融合的AI驱动平台,可创造出迷人的视错觉和超现实意境。 AI算法的魔力所在 Illusion Diffusion 的核心是借助

如何让ChatGPT高效的理解你的Prompt

1.概述 ChatGPT是由 OpenAI 开发的一种强大的语言模型,它在许多自然语言处理任务中展现出了惊人的能力。而其中一个关键的技术概念就是 "Prompt"。本文将深入探讨 Prompt 的概念、作用和应用,以及如何在与 ChatGPT 进行交互时充分利用 Prompt 的能力。 2.内容 C

如何让WPF中的ValidationRule实现参数绑定

###背景 应用开发过程中,常常会对用户输入内容进行验证,通常是基于类型、范围、格式或者特定的要求进行验证,以确保输入符合预期。例如邮箱输入框校验输入内容是否符合邮箱格式。在WPF中,数据模型允许将`ValidationRules`与`Binding`对象关联,可以通过继承`ValidationRu

如何让虚拟角色自然融入现实?

随着AR的发展,虚拟角色被广泛应用在游戏、直播、社交等App中。例如在直播App里,商家可以自由打造虚拟主播的形象,通过AR算法可以让虚拟形象在介绍时做到不遮挡实物商品,提升直播真实性和趣味性。那么,如何让虚拟角色自然融入现实,实现与用户的真实交互呢? 华为HMS Core AR Engine提供单