今天部署到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,只有发布后才生成,这就导致每次发布都要修改。

目前还没找到更好的解决方法,希望有知道的能告知一下,万分感谢!

最新文章

  1. c#.net网页跳转七种方法
  2. 无任何网络提供程序接受指定的网络路径(系统服务里没有workstation服务)
  3. PL/0编译器(java version) - Interpreter.java
  4. [转] Symbol对象
  5. 连接池 BoneCPDataSource
  6. JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现
  7. Redis的各项功能解决了哪些问题?
  8. 实现基于Keepalived主从高可用集群网站架构
  9. 【BZOJ2729】【HNOI2012】排队(组合数学)
  10. Oracle 11g R2性能优化 10046 event
  11. HDU - 6394 Tree(树分块+倍增)
  12. 【API】开机自启动- ActiveX启动
  13. expdp和impdp导入和导出数据
  14. systemd的程序自启动脚本编写
  15. linux下.so、.ko、.a的区别
  16. 飞控入门之C语言结构体、枚举
  17. react.js 各种小测试笔记
  18. 【后渗透】PowerSploit
  19. Leetcode-Construct Binary Tree from inorder and postorder travesal
  20. solr facet查询及solrj 读取facet数据(相当有用)

热门文章

  1. 关于浏览器请求PHP一次请求执行了两次
  2. 自定义控件的属性declare-styleable
  3. 小数组的读写和带Buffer的读写哪个快
  4. Javescript——API连接 &amp;&amp; json数据处理(待续)
  5. React之简介
  6. 文件被sourceTree忽略了怎么办
  7. Can&#39;t create a new thread (errno 11) 解决办法 mysql无法连接
  8. DB2中的NVL和NVL2函数
  9. JQuery.BlockUI使用方法举例
  10. 【Leetcode_easy】704. Binary Search