让IIS识别PUT和DELETE请求
转眼间年底了,突然的我就挪了窝。新的公司,新的电脑,新的服务器。。。。面对新环境,手有些痒,于是试着编写自己的简易版restful API。
restful的话,对资源的相应操作应该被体现成http动词,增删改查对应动词应为post、delete、put、get。
按照思路写出一个demo以后,运行,结果是这样的:
好吧,被拦截了,怎么设置呢?网友们的回答五花八门——
有删除webdav模块的:
1 2 3 4 5 6 7 8 | <system.webServer> <modules> <remove name= "WebDAVModule" /> </modules> <handlers> <remove name= "WebDAV" /> </handlers> </system.webServer> |
有说是因为权限不足造成的,有说是因为页面form太多造成的,有说是因为…………
以上一众网友不论对错,对此处问题都是无效的。
其实关键信息就隐藏在大家都能看得到的地方:
这个链接看过以后,相信大家心里都有谱了:修改配置。
配置文件在这里:C:\Windows\System32\inetsrv\config\applicationhost.config
需要注意的是该文件无法直接打开,先转跳至目录内在进行操作即可。
在这个文件内找到handlers标记,该标记下有所有模块的配置,修改对应模块允许的谓词即可,如:
1 2 3 | <add name= "SimpleHandlerFactory-ISAPI-4.0_64bit" path= "*.ashx" verb= "GET,HEAD,POST,DEBUG,PUT,DELETE" modules= "IsapiModule" scriptProcessor="C:\Windows \Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll " preCondition=" classicMode,runtimeVersionv4.0,bitness64 " responseBufferLimit=" 0" /> |
我这里将PUT和DELETE加了进去,运行:
可以看到,delete已经被支持,put也一样,同理,如果还有什么谓词想加进来,直接在对应模块的配置内添加即可。
如果还是不可以,请手动删除IIS中的WebDav模块,如下图:
希望可以帮到大家~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构