ASP.NET Core 入门(4)(IIS 部署前后端站点)
.NET Core发布部署的文章园内有很多了,大家可以自行百度,该篇主要想总结需要注意的地方,列举前后端(比如前段 Vue,后端 WebAPI)在同一台服务器上的主要两种方式。
两种方式:
1. 前后端不同站点,。(也就是两个端口)
2. 前后端一个站点。(只需要一个端口)
在部署环境上下载安装SDK,注意下载的版本一定要和你编译使用的版本一致,不然部署到IIS会报错。
具体.Net Core版本、SDK版本、Runtime版本的对照关系见官网:
Runtime(winth hosting) + SDK: https://dotnet.microsoft.com/download
另,如果想在.NET Core 项目指定SDK版本,可以参考如下命令操作:
D:\proj\mq\test>dotnet --list-sdks 2.1.500 [C:\Program Files\dotnet\sdk] 2.1.801 [C:\Program Files\dotnet\sdk] 3.0.100 [C:\Program Files\dotnet\sdk] D:\proj\mq\test>dotnet new console -o testproj Getting ready... The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on testproj\testproj.csproj... D:\proj\mq\test\testproj\testproj.csproj ???? 83.4 ms ???? Restore succeeded. D:\proj\mq\test>dotnet --version 3.0.100 D:\proj\mq\test>cd testproj D:\proj\mq\test\testproj>dotnet new global.json --sdk-version 2.1.500 The template "global.json file" was created successfully. D:\proj\mq\test\testproj>dotnet --version 2.1.500
前后端不同站点
// NetCore 后端部分
0、编译项目,保证代码没问题,并配置 CORS 跨域服务;
app.UseCors (builder => builder
.AllowAnyOrigin ()
.AllowAnyMethod ()
.AllowAnyHeader ()
.AllowCredentials ());
①、发布项目;//一般 publish 路径是 bin/Debug/netcore2.2
②、拷贝到服务器指定文件夹;
③、IIS 添加站点;// 端口 1001
④、修改应用程序池为“无托管”;//这也是为啥要安装 windows hosting 的原因
⑤、安装 windows hosting(服务托管);//这是一个捆包,已经包含 Runtime
⑥、重启项目,查看是否正常;http://localhost:1001/
// Vue 前端部分
①、Build 项目;
②、拷贝到服务器指定文件夹;
③、IIS 添加站点;// 端口 1002
④、运行项目,查看是否正常;http://localhost:1002/
前后端一个站点
操作步骤和上边的其实是几乎一样的,只不过我们不需要配置 CORS 跨域了,因为是同一个站点,且是只需要一个端口号。
// NetCore 后端部分,和上边的几乎一样,只不过不用进行 CORS 跨域设置
①、发布项目;
②、拷贝到服务器指定文件夹;
③、IIS 添加站点;// 端口 1003
④、修改应用程序池为“无托管”;//这也是为啥要安装 windows hosting 的原因
⑤、安装 windows hosting(服务托管);//这是一个捆包,已经包含 Runtime
⑥、重启项目,查看是否正常;http://localhost:1003/
// Vue 前端部分
①、修改根路径,并且 Build 项目;// 还要修改接口api的路径
②、拷贝到服务器指定文件夹;//可以和 core 项目放到一起
③、修改 Core 的 IIS 站点,在它的站点内,嵌套一个vue站点(在Core的IIS站点右键选择“添加应用程序”);// 取名为 Vue
④、运行项目,查看是否正常;http://localhost:1003/vue/
最后一点,其实你还可以通过CLI来运行你发布的程序,切换到你发布文件夹下,输入以下命令:
dotnet NetCoreProj.API.dll