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,只有发布后才生成,这就导致每次发布都要修改。

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

  • 相关阅读:
    jQuery 属性操作
    Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1) (个人题解)
    (模板)graham扫描法、andrew算法求凸包
    POJ
    Codeforces Round #677 (Div. 3) (A
    第十三场训练赛
    [kuangbin] 专题13 基础计算几何 题解 + 总结
    特殊的数据结构:主席树
    【计算几何03】距离计算
    Java实现 LeetCode 803 打砖块 (DFS)
  • 原文地址:https://www.cnblogs.com/FateHuli/p/10845788.html
Copyright © 2011-2022 走看看