HTTP 405 无法显示您正在查找的页面,因为使用了无效方法(HTTP 谓词)

.Net技术 码拜 5年前 (2020-05-19) 6604次浏览 0个评论

本地IIS部署的应用调用接口 时报错: HTTP 错误 405.0 – Method Not Allowed  无法显示您正在查找的页面,因为使用了无效方法(HTTP 谓词)。

chrome的console中显示涉及的接口 PUT http://localhost:20002/api/services/codebyecom/Update 405 (Method Not Allowed)

据观察多个报错的接口都和update有关,从浏览器返回的预览中提示如下:

最可能的原因:

  • 发送至 Web 服务器的请求使用了为处理该请求而配置的模块所不允许的 HTTP 谓词。
  • 发送至服务器的请求包含无效的 HTTP 谓词。
  • 该请求是针对静态内容的,但包含 GET 或 HEAD 以外的 HTTP 谓词。
  • 使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件。

可尝试的操作:

  • 验证为此请求所发送到的模块处理程序启用的谓词列表,确保该网站允许使用此谓词。
  • 检查 IIS 日志文件以查看不允许该请求使用的谓词。
  • 创建跟踪规则以跟踪此 HTTP 状态代码的失败请求。有关为失败的请求创建跟踪规则的详细信息,请单击此处。

详细错误信息:

模块    WebDAVModule
通知    MapRequestHandler
处理程序    WebDAV
错误代码    0x00000000
请求的 URL    http://localhost:20002/api/services/codebyecom/Update
物理路径    E:\IIS-Web\api\services\codebyecom\Update
登录方法    匿名
登录用户    匿名

解决方法:IIS中 – 处理程序映射 – 找到WebDAV的名称,双击行,配置请求限制HTTP 405 无法显示您正在查找的页面,因为使用了无效方法(HTTP 谓词)

经后续测试发现,上述操作有问题,改为如下处理方式:

修改,发布后的Web.Config

去除WebDAVModule,

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

再次执行报错的操作,程序恢复正常。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明HTTP 405 无法显示您正在查找的页面,因为使用了无效方法(HTTP 谓词)
喜欢 (3)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!