环境:netcore 5.0 iis 8.5
在使用iis部署netcore程序时碰到一个小问题,跨域,首先检查配置
配置正常,且中间件已启用
很奇怪,ajax调用依然跨域.意识到问题没有那么简单了,因为netcore web设置的进程内托管选择进程内托管,意味着将 .NetCore 应用程序的工作进程托管到 IIS 的工作进程 w3wp.exe 中,使用的 IIS 进程内服务器,即使用的是:IISHttpServer.意味着可能iis将请求拦截掉了.检查发现果然,如下图:
默认的会添加跨域配置,但是不知道为什么没有生效,所以修改web.config文件,去掉默认配置,如下:
<system.webServer> <httpProtocol> <customHeaders> <remove name="Access-Control-Allow-Origin" /> <remove name="Access-Control-Allow-Methods" /> <remove name="Access-Control-Allow-Headers" /> </customHeaders> </httpProtocol> </system.webServer>
ok,可以正常访问了.