.Net Core·寄托于IIS的REST服务405的问题

.Net Core WebAPI寄托于IIS,使用Put、Delete谓词进行访问返回"HTTP Error 405.0 - Method Not Allowed"的错误。

IIS7.5中集成了名为"WebDAV"的HttpModule。WebDAV是超文本传输协议(HTTP)的一组扩展,为Internet上计算机之间的编辑和文件管理提供了标准。利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝、移动、删除等。但是这个默认注册(注册名称为WebDAVModule)会拒绝HTTP方法为PUT和DELETE的请求。所以在IIS7.5上部署的RESTful服务(WCF Data Service,WCF Rest Service,ASP.NET Web API,ASP.NET MVC),当发送Put、Delete请求就会发生HTTP Error 405.0 - Method Not Allowed错误。而IIS7.0之前WebDAV模块作为独立拓展模块,没有集成,因而没有这个问题。

注意寄托于IIS7.5以上的REST服务,默认情况下WebDAV模块会对PUT、DELETE方法进行拦截,需要手动配置下。配置方案是:在项目目录,找到web.config文件。找到system.webServer节点。添加:

<modules>
<remove name = "WebDAVModule"/>
</modules>

 

原文地址:https://www.cnblogs.com/SCscHero/p/14620089.html#/cnblog/works/article/14620089

posted @ 2022-11-23 21:55  宋军涛  阅读(74)  评论(0编辑  收藏  举报