zoukankan      html  css  js  c++  java
  • 关于net core 站点通过iis部署,Delete和Put请求被拦截报跨域错误的问题

    环境:netcore 5.0   iis 8.5

    ajax调用delete接口时发生了以下错误

     很困惑,检查了跨域配置如下:

     并正常启用了中间件如下:

    前端访问均正常,且get、post等请求也能正常访问,就是delete和put报了405 methd not allowed 和跨域错误,意识到事情没有那么简单.因为之前配置了跨域后还是没有生效的问题,原因出在iis上,详情请阅读关于net core 站点通过iis部署,跨域配置遇到的问题。一番查阅之后,发现和iis确实有关系,罪魁祸首是WebDAVModule,它似乎设置了默认禁用的PUT和DELETE请求方法。为了让它们正常工作,我们要么需要更改这些默认设置,要么需要为整个Web应用程序禁用它,修改web.config文件如下:

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

    禁用之后,问题就解决了!

    总结:问题的关键其实是设置了进程内托管,选择进程内托管,意味着将 .NetCore 应用程序的工作进程托管到 IIS 的工作进程 w3wp.exe 中,使用的 IIS 进程内服务器,即使用的是:IISHttpServer.

     WebDAVModule模块默认是开启的.

  • 相关阅读:
    RPA浏览器及word需要注意的点
    捕获alert弹框
    创建文件夹
    Excel 筛选功能
    RPA_播放语音
    flask路由
    python操作git
    RPA_关键词识别
    初始flask
    RPA中需要注意的问题
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/15503442.html
Copyright © 2011-2022 走看看