zoukankan      html  css  js  c++  java
  • .NET Core api部署到IIS上405的问题

    今天部署到iis 服务器上,api的put请求一直报405。其他像get post都没问题。

    google了半天,找到两种解决方案,亲测都可以。但我个人认为不是最理想的解决方案。

    1.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移除即可:

    (此方法参考:http://blog.baibaota.com/84.html)

     <system.webServer>
     <modules runAllManagedModulesForAllRequests="true">
     <remove name="WebDAVModule" />
     </modules>
     </system.webServer>

    或者

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

    2.直接通过iis在模块中移除

    直接删除即可。

    总结:其实这两种本质上是一致的。都是移除WebDAVModule,但是在.NET Core下dev下是没有web.config,只有发布后才生成,这就导致每次发布都要修改。

    目前还没找到更好的解决方法,希望有知道的能告知一下,万分感谢!

  • 相关阅读:
    resin实现热部署配置
    tomcat实现域名访问步骤
    springboot学习笔记2---配置拦截器:
    springboot学习笔记2:搭建web项目
    springboot学习笔记1:springboot入门
    重识maven
    shiro学习笔记:remeberMe,多次登录锁死账号
    shiro学习笔记:授权管理
    springmvc定时任务及RequestBody注解
    springmvc处理异常
  • 原文地址:https://www.cnblogs.com/FateHuli/p/10845788.html
Copyright © 2011-2022 走看看