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