学海无涯

导航

访问托管在运行 IIS 的服务器上的网站时出现 HTTP 错误 405.0

问题:客户端请求部署在IIS中的APS.NET CORE API时,get请求正常,但 delete 和 put 请求报405错误

解决方法:在控制面版本-》程序功能-》启用关闭Windows功能中的,IIs-》常见Http->WebDAV发布(删除),后恢复正常。即当前症状:3

本文内容

  1. 症状
  2. 原因 1
  3. 原因 2
  4. 原因 3

本文可帮助你解决 HTTP 错误 405.0。 访问在运行 Internet Information Services (IIS) 的服务器上托管的网站时,会出现此错误。

              原始产品版本:Internet Information Services 7.0 及更高版本
原始 KB 编号: 942051

症状

请考虑以下应用场景: 你有一个网站托管在运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上。 当用户访问此网站时,用户会收到类似于以下示例的错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 405.0 - 不允许使用方法
HRESULT:0x80070001
对 HRESULT 的说明
无法显示要查找的页面,因为正在使用无效的方法 (HTTP 谓词) 。

原因 1

出现此问题的原因是,客户端使用不符合 HTTP 规范的 HTTP 方法 (HTTP) 请求发出超文本传输协议。

原因 2

出现此问题的原因是,客户端通过向配置为由StaticFile处理程序处理的页面发送POST方法发出 HTTP 请求。 例如,客户端将 POST 方法发送到静态 HTML 页。 但是,为 StaticFile 处理程序配置的页面不支持 POST 方法。

原因 3

WebDAV 发布会干扰 HTTP PUT。

原因 1 的解决方法

确保客户端发送包含有效 HTTP 方法的请求。 为此,请执行以下步骤:

  1. 选择“开始”,在“开始搜索”框中键入“记事本”,右键单击“记事本”,然后选择“以管理员身份运行”。

     备注

    如果系统提示输入管理员密码或进行确认,请键入密码或提供确认。

  2. 在“文件”菜单上,选择“打开”。 在“ 文件名 ”框中,键入 %windir%\system32\inetsrv\config\applicationhost.config,然后选择“ 打开”。

  3. 在 ApplicationHost.config 文件中,找到 <handlers> 标记。

  4. 确保所有处理程序都使用有效的 HTTP 方法。

  5. 保存 ApplicationHost.config 文件。

原因 2 的解决方法

将 POST 请求发送到配置为由处理程序以外的 StaticFile 处理程序处理的页面。 例如, ASPClassic 处理程序。 或者,更改处理程序正在处理 StaticFile 的请求,使其为 GET 请求而不是 POST 请求。

原因 3 的解决方案

从 Web.config 文件中删除 WebDAV 模块和处理程序。 如果未使用 WebDAV 发布功能,请从计算机中删除它。 为此,请执行以下步骤:

  1. 选择“开始”,在“开始搜索”框中键入“打开或关闭 Windows 功能”,然后选择“打开或关闭 Windows 功能”。
  2. 在“Windows 功能”窗口中,展开“Internet Information Services-World>Wide Web Services ->Common HTTP 功能”。
  3. 取消选中 WebDAV 发布 功能。

参考:https://learn.microsoft.com/zh-cn/troubleshoot/developer/webapps/iis/health-diagnostic-performance/http-error-405-website

 

posted on 2024-06-06 10:25  宁静致远.  阅读(52)  评论(0编辑  收藏  举报