1.問題介紹
最近學習了.net core項目,是一個空的解決方案裏面有 asp.net web api 接口項目 和 asp.net web模型視圖控制器項目(頁面)還有其他項目如模型層。然後是先做接口部分,及調試接口部分,沒問題了再做頁面部分。並把頁面項目設置爲啓動項目,這時但是訪問不到接口項目的數據,是因爲跨域了,所以無法直接在VS調試。
2.解決 通過IIS服務
還是把 頁面項目設置爲啓動項目,再設置頁面項目如下:不啓用ssl
編譯整個解決方案,並發佈 頁面項目 和 發佈 接口項目.
然後給整個解決方案配置IIS,然後在這個解決方案所在的應用程序次添加 剛剛發佈的兩個應用程序。如下圖::
並且把他們所在的應用程序池設置託管代碼爲 無託管,(.net framework 是有託管的,.net core沒有)
然後給api應用程序設置http響應表頭,這樣頁面項目程序才能訪問接口數據。如下:
添加內容如下:
標頭有兩個如下:
Access-Control-Allow-Headers
Content-Type
Access-Control-Allow-Origin
*
每次修改了接口項目代碼和頁面代碼都要重新發布,然後需要重新操作上面的步驟,不然可能還是會訪問不到接口的數據。
3.爲什麼要上面的操作?
因爲.net core項目的api 和頁面是不同的項目所以要配置一下,並在vs中把 manage設爲啓動項,這樣在調試的時候才能調用api,不然調用不到api。