.Net Core Api發(fā)布到IIS_注意點(diǎn)/常見(jiàn)問(wèn)題總結(jié)/跨域處理方案

前言

閱讀該文章大概會(huì)占用您1-2分鐘的時(shí)間.

其實(shí)Core Api和web Api的發(fā)布并沒(méi)有什么區(qū)別..
步驟和webapi的發(fā)布基本一致.
只是有幾個(gè)點(diǎn)需要大家注意一下.

1.服務(wù)器必須提前安裝好.net core運(yùn)行環(huán)境.

可以通過(guò)查看以下兩個(gè)地方檢查


控制面板
IIS模塊

2.應(yīng)用程序池必須選擇無(wú)托管代碼模式

安裝core運(yùn)行環(huán)境自帶


無(wú)托管代碼

3.本地發(fā)布必須使用release模式

不然服務(wù)會(huì)莫名500


Release

4.如果使用swagger

需注意發(fā)布后的文件里是不含xml的,需要手動(dòng)去bin拷貝一份
不然服務(wù)會(huì)莫名500

5.跨域-不指定主機(jī)來(lái)源

在core api解決跨域只需三步:
1.Startup-ConfigureServices 注冊(cè)配置

            //添加cors 服務(wù) 配置跨域處理      老版本core(貌似2.1以下)需手動(dòng)引入nuget包
            services.AddCors(options =>
            {
                options.AddPolicy("YourPolicyName", builder =>
                {
                    builder.AllowAnyOrigin() //允許任何來(lái)源的主機(jī)訪問(wèn)
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials();//指定處理cookie
                });
            });

2.Startup-Configure 啟用配置

//配置Cors 解決跨域
app.UseCors("YourPolicyName");

3.在你的controller上添加特性

 [EnableCors("YourPolicyName")]
public class ReportExcelController : BaseController

若想指定主機(jī)訪問(wèn),只需將配置作出如下調(diào)整,傳入多個(gè)域名即可

image.png

例如:

           services.AddCors(options =>
            {
                options.AddPolicy("YourPolicyName", builder =>
                {
                    builder.WithOrigins("http://test.com","http://test233.com","http://localhost:53894") //指定來(lái)源的主機(jī)訪問(wèn)
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials();//指定處理cookie
                });
            });

你也可以注冊(cè)多個(gè)Policy,為不同的api提供不同的主機(jī)訪問(wèn)

若該文章為您帶來(lái)了幫助,請(qǐng)不要吝惜您的"贊"~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容