.Net Core Api发布到IIS_注意点/常见问题总结/跨域处理方案

前言

阅读该文章大概会占用您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提供不同的主机访问

若该文章为您带来了帮助,请不要吝惜您的"赞"~

你可能感兴趣的:(.Net Core Api发布到IIS_注意点/常见问题总结/跨域处理方案)