.Net Core Api发布到IIS_注意点/常见问题总结/跨
2019-11-20 本文已影响0人
LuyaoCore
前言
阅读该文章大概会占用您1-2分钟的时间.
其实Core Api和web Api的发布并没有什么区别..
步骤和webapi的发布基本一致.
只是有几个点需要大家注意一下.
1.服务器必须提前安装好.net core运行环境.
可以通过查看以下两个地方检查
控制面板 IIS模块
2.应用程序池必须选择无托管代码模式
安装core运行环境自带
无托管代码
3.本地发布必须使用release模式
不然服务会莫名500
Release
4.如果使用swagger
需注意发布后的文件里是不含xml的,需要手动去bin拷贝一份
不然服务会莫名500
5.跨域-不指定主机来源
在core api解决跨域只需三步:
1.Startup-ConfigureServices 注册配置
//添加cors 服务 配置跨域处理 老版本core(貌似2.1以下)需手动引入nuget包
services.AddCors(options =>
{
options.AddPolicy("YourPolicyName", builder =>
{
builder.AllowAnyOrigin() //允许任何来源的主机访问
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();//指定处理cookie
});
});
2.Startup-Configure 启用配置
//配置Cors 解决跨域
app.UseCors("YourPolicyName");
3.在你的controller上添加特性
[EnableCors("YourPolicyName")]
public class ReportExcelController : BaseController
若想指定主机访问,只需将配置作出如下调整,传入多个域名即可
image.png例如:
services.AddCors(options =>
{
options.AddPolicy("YourPolicyName", builder =>
{
builder.WithOrigins("http://test.com","http://test233.com","http://localhost:53894") //指定来源的主机访问
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();//指定处理cookie
});
});
你也可以注册多个Policy,为不同的api提供不同的主机访问
若该文章为您带来了帮助,请不要吝惜您的"赞"~