.net core Api 部署到Linux的方法步驟
一.環境介紹
1..net開發環境:asp.net core 3.1
2.Linux環境:CentOS Linux release 7.9.2009 (Core)
3.Swagger: Swashbuckle.AspNetCore6.0
4.開發工具:VS2019,xShell7,xFtp7
二.搭建API
2.1使用vs2019新建一個API專案
2.2安裝Swagger
選擇上面的工具--》NuGet包管理器--》管理解決方案的管理包
搜尋Swashbuckle.AspNetCore,並安裝即可
Swashbuckle.AspNetCore
2.3配置Swagger
找到專案的中Startup.cs 檔案,修改內容如下:
程式碼如下:
public void ConfigureServices(IServiceCollection services) { services.AddSwaggerGen(options => { options.SwaggerDoc("v1",new OpenApiInfo { Title = "My API",Version = "v1" }); // 獲取xml檔名 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; // 獲取xml檔案路徑 var xmlPath = Path.Combine(AppContext.BaseDirectory,xmlFile); // 新增控制器層註釋,true表示顯示控制器註釋 options.IncludeXmlComments(xmlPath,true); }); services.AddControllers(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app,IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } //啟用中介軟體服務生成Swagger作為JSON終結點 app.UseSwagger(c=> { c.PreSerializeFilters.Add((doc,item)=> { doc.Servers = new List<OpenApiServer> { new OpenApiServer{ Url=$"{item.Scheme}://{item.Host.Value}/{item.Headers["X-Forwarded-Prefix"]}" } }; }); }); //啟用中介軟體服務對swagger-ui,指定Swagger JSON終結點 app.UseSwaggerUI(c => { c.ShowExtensions(); c.SwaggerEndpoint("/swagger/v1/swagger.json","My API V1"); c.DocExpansion(DocExpansion.None); c.RoutePrefix = string.Empty; //如果跟目錄顯示SwaggerUI加上這句 }); app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
2.4設定生成的API文件
首先啟動專案,之後會生成一個Demo1.xml檔案,如下圖所示,單擊檔案Demo.xml檔案,修改複製到輸出目錄: 如果較新則複製
三.釋出API
3.1釋出程式
選擇專案名稱,右鍵選擇釋出
選擇資料夾,之後選擇下一步,選擇完成即可。
點擊發布按鈕即可
3.2上傳程式
使用Xftp軟體,把本地釋出的檔案上傳到Linux系統中
到此,API已經建立,也上傳到伺服器了。
四.啟動專案
使用Xshell工具,連線到我們的Linux作業系統,使用cd path 命令進入到之前上傳的資料夾中。
進入目錄:cd /home/www/test
檢視檔案列表:ls
輸入命令:dotnet Demo1.dll,如下圖所示,這是成功的在Linux中啟動了我們釋出的API專案。
192.168.6.130:把你Linux的IP替換我的這個192.168.6.130,在訪問
在你的瀏覽器中輸入:http://192.168.6.130:5000/index.html
到此,我們就完成一個Asp.net core釋出的API,部署到Linux系統中,成功啟動執行。
五.總結
通過如上操作,也只是簡單粗糙的在Linux中啟動WebApi,讓我學習了.net core也是可以跨平臺的,也是總結一下踩坑的經驗,比如說部署Api中如果有Swagger,正常的部署是無法訪問,需要修改配置西資訊檢視2.3 Swagger配置,後面計劃繼續深入,把API部署到Dokcer中,使用nginx來實現反向代理。雖然這些在工作中完全用不到,就是想學習瞭解,這個技術能幫我解決什麼問題,只能瞭解更多,遇到問題才能有多個解決方法。加油,乾飯人!
到此這篇關於.net core Api 部署到Linux的文章就介紹到這了,更多相關.net core Api 部署到Linux內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!
作者:喜歡吃魚的青年
出處:https://home.cnblogs.com/u/2828sea/