IIS 部署 .net core 疑是跨域问题

.net core 项目配置使用cors 配置跨域 是个很简单的操作,官网有教程

https://docs.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-3.1

当项目发布到IIS后,如果使用的是Restful 风格的API,其它项目访问的时候控制台会出现跨域的报错信息。而且有的接口存在跨域,有的接口不跨域,仔细检查后发现 GET 和POST 可以正常调用,而PUT DELETE 会提示跨域。

这时候会想,开发环境已经解决过跨域问题,这个问题是如何产生的呢?

经过多次尝试发现 IIS 有个默认模块会导致项目不支持 Put  DELETE

IIS 部署 .net core 疑是跨域问题

如果项目不需要该模块的内容,删除即可

或者在项目的发布文件中找到web.config文件,配置标红的信息,即可解决。

<system.webServer>

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

</system.webServer>