.NET Core api部署到IIS上405的问题
2024-10-18 08:30:33
今天部署到iis 服务器上,api的put请求一直报405。其他像get post都没问题。
google了半天,找到两种解决方案,亲测都可以。但我个人认为不是最理想的解决方案。
1.IIS拒绝PUT和DELETE请求是由默认注册的一个名为WebDAVModule的自定义HttpModule导致的。WebDAV的全称为Web-based Distributed Authoring and Versioning,它是一个在多用户之间辅助协同编辑和管理在线文档的HTTP扩展。该扩展使应用程序可以直接将文件写到Web Server上,同时支持文件的加锁和版本控制。微软是推动WebDAV成为一个标准的主导力量,它自己利用自定义的HttpModule实现了IIS针对WebDAV的支持。但是这个默认注册(注册名称为WebDAVModule)会拒绝HTTP方法为PUT和DELETE的请求,如果我们的站点不需要提供针对WebDAV的支持,解决这个问题最为直接的方式就是利用如下配置将注册的HttpModule移除即可:
(此方法参考:http://blog.baibaota.com/84.html)
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
</system.webServer>
或者
<modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="true" >
<remove name="WebDAVModule" />
</modules>
2.直接通过iis在模块中移除
直接删除即可。
总结:其实这两种本质上是一致的。都是移除WebDAVModule,但是在.NET Core下dev下是没有web.config,只有发布后才生成,这就导致每次发布都要修改。
目前还没找到更好的解决方法,希望有知道的能告知一下,万分感谢!
最新文章
- c#.net网页跳转七种方法
- 无任何网络提供程序接受指定的网络路径(系统服务里没有workstation服务)
- PL/0编译器(java version) - Interpreter.java
- [转] Symbol对象
- 连接池 BoneCPDataSource
- JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现
- Redis的各项功能解决了哪些问题?
- 实现基于Keepalived主从高可用集群网站架构
- 【BZOJ2729】【HNOI2012】排队(组合数学)
- Oracle 11g R2性能优化 10046 event
- HDU - 6394 Tree(树分块+倍增)
- 【API】开机自启动- ActiveX启动
- expdp和impdp导入和导出数据
- systemd的程序自启动脚本编写
- linux下.so、.ko、.a的区别
- 飞控入门之C语言结构体、枚举
- react.js 各种小测试笔记
- 【后渗透】PowerSploit
- Leetcode-Construct Binary Tree from inorder and postorder travesal
- solr facet查询及solrj 读取facet数据(相当有用)
热门文章
- 关于浏览器请求PHP一次请求执行了两次
- 自定义控件的属性declare-styleable
- 小数组的读写和带Buffer的读写哪个快
- Javescript——API连接 &;&; json数据处理(待续)
- React之简介
- 文件被sourceTree忽略了怎么办
- Can&#39;t create a new thread (errno 11) 解决办法 mysql无法连接
- DB2中的NVL和NVL2函数
- JQuery.BlockUI使用方法举例
- 【Leetcode_easy】704. Binary Search