【参考】.net IIS MVC Rest api 跨域 PUT DELETE 404 无法使用问题解决方案

今日在使用泛型處理常式處理檔案上傳時,使用了 HTTP 動詞的 PUT、DELETE 進行操作,卻發現當使用了 PUT、DELETE 時會發生「405 Method Not Allowed」錯誤,此錯誤的發生是由於使用了不正確的 HTTP 動詞而產生,也就是 Server 並不接受此 HTTP 動詞,為了讓 Server 能夠接受 PUT、DELETE 動詞,需要去調整 IIS 的處理常式對應,以下紀錄發生此問題的解決方法。

處理情形


問題情況

解決方法

當此問題發生時找到了 IIS Express FAQ,在 FAQ 裡提到需要去修改 IIS Express 的 config 檔案,路徑如下

C:\Users\User\Documents\IISExpress\config\applicationhost.config

在 config 檔案的 <handlers> ... </handlers> 標籤內的 ExtensionlessUrl-Integrated-4.0 屬性中的 verb="GET,HEAD,POST,DEBUG" 字段加入 PUT, DELETE 動詞,如下


<add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />

但依照 FAQ 的方法去增加動詞後進行測試,卻還是一樣出現 405 Method Not Allowed 錯誤。於是再仔細觀察 handlers 內後發現由於接收 HTTP PUT、DELETE 動詞的檔案為泛型處理常式,泛型處理常式的處理會交由 SimpleHandlerFactory 進行處理,所以在 handlers 內尋找 SimpleHandlerFactory 可以看到 SimpleHandlerFactory-Integrated 屬性配置,修改 SimpleHandlerFactory-Integrated 的 verb 加上 PUT、DELETE動詞,如下


<add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />

修改後重新測試已可正常發送 PUT、DELETE 動詞,如下

另外如果要透過 IIS 去調整的話可以使用以下方法,進入 IIS 管理介面後點選處理常式對應

找到 SimpleHandlerFactory-Integrated-4.0 右鍵編輯,選擇要求限制

在指令動詞中加入 PUT, DELETE 即可

VS IISExpress REST DELETE 405 Method Not Allowed的更多相关文章

  1. post 405 method not allowed

    HTTP 405 错误 – 方法不被允许 (Method not allowed) 介绍 HTTP 协议定义一些方法,以指明为获取客户端(如您的浏览器或我们的 CheckUpDown 机器人)所指定的 ...

  2. WebApi HTTP Put 405 Method not allowed

    总结列表: 1. There is already an open DataReader associated with this Connection which must be closed fi ...

  3. 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行

    [微信支付]分享一个失败的案例 2018-06-04 08:24 by stoneniqiu, 2744 阅读, 29 评论, 收藏, 编辑 这个项目是去年做的,开始客户还在推广,几个月后发现服务器已 ...

  4. 使用wcf服务捕捉到“POST http://yourIP/WCFService.svc 405 (Method Not Allowed) ”错误!

    在程序中使用了一个wcf服务,调试时无任何问题(win7 64位,iis6.1),发布到部门服务器上没有问题(server2008 64位),但是部署到实际服务器上时(server2008 iis6. ...

  5. 解决“HTTP/1.1 405 Method not allowed”问题

    Apache.IIS.Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回"HTTP/1.1 405 Method not allowed"错误. 即,将 ...

  6. Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。

    例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页 [root@new-host ~]# curl -d 1=1 http://www.sohu.com/inde ...

  7. jQuery ajax 请求HttpServlet返回[HTTP/1.1 405 Method not allowed]

    1.问题使用jQuery的ajax请求 Servlet 时,返回没有进入ajax的success回调函数,浏览器控制台显示 [HTTP/1.1 405 Method not allowed]. 2.解 ...

  8. yii2 RESTful API 405 Method Not Allowed

    关于 Yii2 中 RESTful API 的开发,可以参考另一篇随笔 http://www.cnblogs.com/ganiks/p/yii2-restful-api-dev.html 测试的过程中 ...

  9. postman发送post请求,报405 Method Not Allowed

    postman发送post请求,报405 Method Not Allowed: 亲测有效的方案一: 检查请求header是否缺少必要信息.如果不清可以把所有的头部信息全部粘贴到header中,尝试是 ...

随机推荐

  1. vue动态切换页面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. SpringMVC的请求处理流程

  3. linux中查看 php.ini 的存放位置

    查找php.ini的存放位置: 方法一: php --ini 所列出的结果中: Loaded Configuration File 即为 php.ini 所存放的位置  方法二: php -i | g ...

  4. modelform的操作以及验证

    1,model的两个功能 1,数据库操作 2,验证只有一个clean方法作为钩子来操作,方法比较少 2,form(专门用来做验证的) 根据form里面写的类,类里面的字段,这些字段里有内置的的正则表达 ...

  5. IDEA 下载 和 安装 22

    1. IDEA 下载 网址     pttps://www.jetbrains.com IDEA      优点  :高度集成企业软件工程的概念(svn, git) 缺点: 破解存在在法律风险 ; E ...

  6. 1、html基础认识&常用标签(1)

    从今天期我们进入前端的学习,先学习html,没有任何复杂难懂的逻辑需要烧脑,只需要记忆.练习.练习.练习. 本篇导航: HTML初识 常用标签介绍 <body>内常用标签 一.HTML初识 ...

  7. AlexNet总结

    https://blog.csdn.net/Rasin_Wu/article/details/80017920 https://blog.csdn.net/chaipp0607/article/det ...

  8. go test 测试用例那些事

    go test命令,相信大家都不陌生,常见的情况会使用这个命令做单测试.基准测试和http测试.go test还是有很多flag 可以帮助我们做更多的分析,比如测试覆盖率,cpu分析,内存分析,也有很 ...

  9. AYUI第12个作品-英雄联盟-魔法少女的星光水晶2.0-WPF版本

    一下 内容基于AYUI6.7制作,主要3个大控件,1个 轮播预览,一个抽奖展示,一个是自己的抽中的历史展示,还有礼品领取,图片变成黑白的滤镜,滚动条网页方式布局 历时4天,制作效果如下: 由于自己爬了 ...

  10. Python 爬虫实例(9)—— 搜索 爬取 淘宝

    # coding:utf- import json import redis import time import requests session = requests.session() impo ...