IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed

IIS7.5 WebDAV与RESTful服务冲突解决方案
本文介绍了在IIS7.5中使用WebDAV时遇到的问题,特别是与RESTful服务(如WCFDataService、WCFRestService、ASP.NET WebAPI和ASP.NET MVC)的不兼容性导致的HTTP 405 Method Not Allowed错误,并提供了解决方案。

WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝、移动、删除等。在IIS 7.0中,WebDAV是作为独立扩展模块,需要单独进行下载,而IIS 7.5中将集成WebDAV,然而WebDav把Put,Delete给咔嚓了。所以在IIS 7.5上部署的RESTful服务(WCF Data Service,WCF Rest Service,ASP.NET Web API,ASP.NET MVC)就悲剧了,当发送Put请求就会发生HTTP Error 405.0 – Method  Not Allowed错误,解决方法也很简单,在Web.config里面加入如下设置:

<system.webServer> 
  <modules> 
    <remove name="WebDAVModule" /> 
  </modules> 
  <handlers> 
    <remove name="WebDAV" /> 
  </handlers> 

</system.webServer>


http://www.cnblogs.com/shanyou/archive/2012/03/23/2414252.html

### Vue 项目部署至 IIS 出现 HTTP 405 错误的原因分析 HTTP 405 方法不允许错误通常发生服务器配置不支持客户端尝试使用的 HTTP 请求方法时。对于 Vue.js 应用程序,在将其部署到 Internet Information Services (IIS) 上之后遇到此问题,可能是由于以下几个原因造成的: #### 配置 Web.config 文件不当 当应用程序试图通过 POST 或其他非 GET/HEAD 请求访问资源而这些请求未被适当处理时会发生这种情况。确保 `web.config` 中有正确的设置来允许所有必要的 HTTP 动词。 ```xml <configuration> <system.webServer> <!-- ... --> <handlers> <add name="ApiURIs-ISAPI-Integrated-4.0" path="/api/*" verb="GET,POST,PATCH,PUT,DELETE,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/> </handlers> </system.webServer> </configuration> ``` #### 缺少或错误的路由规则 如果 API 路由没有正确映射或者存在冲突,则可能导致某些端点无法接受特定类型的请求。检查并调整应用内的路由逻辑以及 IIS 的 URL Rewrite 模块中的重写规则以确保它们不会阻止合法的操作[^1]。 #### ASP.NET Core Module 设置缺失 如果是基于 .NET Core 构建的服务端部分(即使前端是 Vue),则可能是因为缺少了对 ASP.NET Core Module V2的支持。这可以通过安装相应的 Windows Hosting Bundle 来修复,并确认 applicationHost.config 和 web.config 已经更新为使用最新版本的核心托管模块[^2]。 #### 解决方案建议 为了有效解决问题,可以采取以下措施之一或组合起来实施: - 修改 `web.config` 添加适合的应用处理器; - 安装和启用 IIS 的 WebDAV 扩展服务(有时它会干扰 PUT/PATCH 请求); - 使用 Fiddler 等工具调试实际发出的 HTTP 请求及其响应头信息找出具体哪个环节出了错; - 如果适用的话,请考虑升级整个环境到更稳定的新版软件栈上运行;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值