• 【转】项目部署在IIS上访问接口报405:Method not Allowed


    在虚拟机的IIS上部署项目的时候访问接口报405错误,接口请求方式为(PUT),试了下所有PUT请求的都无法访问,由此可知IIS应该是未允许当前请求方式,(Delete同理)

    解决方案

    1.首先查看aspNetCore在IIS中是否限制了请求方式,经过查看并未发现不被允许的请求方式。处理程序映射=>aspNetCore

    2.修改发布后的文件web.config

    粘贴图片

    新增这段代码:

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

    或者

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

    查了一下解释是: 通过了解 IIS拒绝PUT和DELETE请求是由默认注册的一个名为WebDAVModule的自定义HttpModule导致的。WebDAV的全称为Web-based Distributed Authoring and Versioning,它是一个在多用户之间辅助协同编辑和管理在线文档的HTTP扩展。该扩展使应用程序可以直接将文件写到Web Server上,同时支持文件的加锁和版本控制。微软是推动WebDAV成为一个标准的主导力量,它自己利用自定义的HttpModule实现了IIS针对WebDAV的支持。但是这个默认注册(注册名称为WebDAVModule)会拒绝HTTP方法为PUT和DELETE的请求,如果我们的站点不需要提供针对WebDAV的支持,解决这个问题最为直接的方式就是利用如下配置将注册的HttpModule移除即可。

    3.关闭WEBDAV功能

    .NET Core下dev下是没有web.config,只有发布后才生成,这就导致每次发布都要修改。 这样非常不方便。如果没有使用到WebDAV ,可以直接移除这个模块。卸载程序=》启用或关闭Windows功能=>Internet Information Service=>万维网服务=>常见HTTP功能=>WEBDAV发布。

  • 相关阅读:
    SilverLight之路(四)
    SilverLight之路(十一)
    SilverLight之路(五)
    SilverLight之路(九)
    SilverLight之路(八)
    设计silverlight的MediaPlay控件silverlight(银光)学习(3)
    自学MVC(三):郁闷的表单验证2009年05月04日
    silverlight的Button控件补完设计silverlight(银光)学习(2)
    拖动MediaPlay控件的滚动条来控制媒体播放silverlight(银光)学习(4)
    自学MVC(四):注册页面的完成2009年05月06日
  • 原文地址:https://www.cnblogs.com/cyqdeshenluo/p/13411105.html
Copyright © 2020-2023  润新知