将.NET Core(2.1) Web Api发布到Linux(CentOS 7 64) 近来在学习linux相关的一些东西,然后正巧想试一下把core的应用程序发布到Linux,毕竟跨平台。尝试一下。以下是我在网上找到的资料做的一些整理。 需要准备的...
将.NET Core(2.1) Web Api发布到Linux(CentOS 7 64)
近来在学习linux相关的一些东西,然后正巧想试一下把core的应用程序发布到Linux,毕竟跨平台。尝试一下。以下是我在网上找到的资料做的一些整理。
需要准备的工具:Xshell,WinSPC,VM(我们这里暂时采用VM装一个CentOS 7的系统作为测试用例)
1.首先建立一个.net core 的web api 应用。这里选择.net core的版本选择的是2.1,建立好以后,会自动有一个控制器ValuesController,如图:
2.NuGet引入Swagger, [Startup]代码如下:
1 public class Startup 2 { 3 public Startup(IConfiguration configuration) 4 { 5 Configuration = configuration; 6 } 7 8 public IConfiguration Configuration { get; } 9 10 // This method gets called by the runtime. Use this method to add services to the container. 11 public void ConfigureServices(IServiceCollection services) 12 { 13 services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); 14 //配置Swagger 15 //注册Swagger生成器,定义一个Swagger 文档 16 services.AddSwaggerGen(c => 17 { 18 c.SwaggerDoc("v1", new Info 19 { 20 Version = "v1", 21 Title = "接口文档", 22 Description = "RESTful API" 23 }); 24 // 为 Swagger 设置xml文档注释路径 25 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; 26 var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); 27 c.IncludeXmlComments(xmlPath); 28 }); 29 } 30 31 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 32 public void Configure(IApplicationBuilder app, IHostingEnvironment env) 33 { 34 if (env.IsDevelopment()) 35 { 36 app.UseDeveloperExceptionPage(); 37 } 38 //启用中间件服务生成Swagger 39 app.UseSwagger(); 40 //启用中间件服务生成Swagger,指定Swagger JSON终结点 41 app.UseSwaggerUI(c => 42 { 43 c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1"); 44 c.RoutePrefix = string.Empty;//设置根节点访问 45 }); 46 app.UseMvc(); 47 } 48 }
生成运行一下,得到以下结果:
2.将该项目发布,发布配置如下:
3.用VM装一个CentOS 7 64的系统(这里镜像文件太大,就没有传,自行网上找一个)。系统装完后设置好相关的凭证,账号密码。然后启动该虚拟机。
通过账号密码登录成功以后,执行指令 ifconfig,拿到该虚拟机的IP。然后就可以用Xshell,WinSPC工具连接该虚拟机。
4.在Linux上装.net core运行环境,如果是.net core 2.1 需执行两个命令 (地址:https://dotnet.microsoft.com/download/linux-package-manager/centos7/sdk-2.1.802)
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-2.1
以上两个命令分别执行,如果有遇到y/n选择的,直接输入y敲回车即可。安装完成以后。输入命令 dotnet --version如果得到以下结果,则证明你的.net core环境已经搭建完毕:
5.利用工具WinSPC,需要输入虚拟机的地址和账号密码,连接上以后在root文件目录下建一个文件夹,这里有两种方式可以建立。
1(通过linux命令创建,创建一个名为web的文件夹)
mkdir web
2(直接手工在winSPC右键新建文件夹即可。
把发布好的.net core包直接手工粘贴到web目录下。通过命令cd web进入到目录后,再输入命令ls查询当前文件。如图
接下来就该启动这个复制过来的服务了,用linux命令 dotnet *.dll,这里的*代表的就是你的执行文件。如我上图所示的话,我的完整命令应该为:
出现以上提示,则证明该服务器已经启动成功了,通过这个地址,我们直接在本机试一下,能否访问。
出现以上结果,则证明我们这个core服务已经成功在Linux上发布成功了。
本文标题为:将.NET Core Web Api发布到Linux(CentOS 7 64)
- c# 模拟线性回归的示例 2023-03-14
- 在C# 8中如何使用默认接口方法详解 2023-03-29
- 如何使用C# 捕获进程输出 2023-03-10
- .NET CORE DI 依赖注入 2023-09-27
- Unity Shader实现模糊效果 2023-04-27
- user32.dll 函数说明小结 2022-12-26
- Oracle中for循环的使用方法 2023-07-04
- Unity3D实现渐变颜色效果 2023-01-16
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- WPF使用DrawingContext实现绘制刻度条 2023-07-04