環境: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,可以正常訪問了.