前言
閱讀該文章大概會(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)不要吝惜您的"贊"~