.net core Api 部署到Linux的方法步驟
一.環(huán)境介紹
1..net開發(fā)環(huán)境:asp.net core 3.1
2.Linux環(huán)境:CentOS Linux release 7.9.2009 (Core)
3.Swagger: Swashbuckle.AspNetCore6.0
4.開發(fā)工具:VS2019,xShell7,xFtp7
二.搭建API
2.1使用vs2019新建一個(gè)API項(xiàng)目
2.2安裝Swagger
選擇上面的工具--》NuGet包管理器--》管理解決方案的管理包
搜索Swashbuckle.AspNetCore,并安裝即可
Swashbuckle.AspNetCore
2.3配置Swagger
找到項(xiàng)目的中Startup.cs 文件,修改內(nèi)容如下:
代碼如下:
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(); } //啟用中間件服務(wù)生成Swagger作為JSON終結(jié)點(diǎn) 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"]}" } }; }); }); //啟用中間件服務(wù)對(duì)swagger-ui,指定Swagger JSON終結(jié)點(diǎn) 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設(shè)置生成的API文檔
首先啟動(dòng)項(xiàng)目,之后會(huì)生成一個(gè)Demo1.xml文件,如下圖所示,單擊文件Demo.xml文件,修改復(fù)制到輸出目錄: 如果較新則復(fù)制
三.發(fā)布API
3.1發(fā)布程序
選擇項(xiàng)目名稱,右鍵選擇發(fā)布
選擇文件夾,之后選擇下一步,選擇完成即可。
點(diǎn)擊發(fā)布按鈕即可
3.2上傳程序
使用Xftp軟件,把本地發(fā)布的文件上傳到Linux系統(tǒng)中
到此,API已經(jīng)創(chuàng)建,也上傳到服務(wù)器了。
四.啟動(dòng)項(xiàng)目
使用Xshell工具,連接到我們的Linux操作系統(tǒng),使用cd path 命令進(jìn)入到之前上傳的文件夾中。
進(jìn)入目錄:cd /home/www/test
查看文件列表:ls
輸入命令:dotnet Demo1.dll,如下圖所示,這是成功的在Linux中啟動(dòng)了我們發(fā)布的API項(xiàng)目。
192.168.6.130:把你Linux的IP替換我的這個(gè)192.168.6.130,在訪問
在你的瀏覽器中輸入:http://192.168.6.130:5000/index.html
到此,我們就完成一個(gè)Asp.net core發(fā)布的API,部署到Linux系統(tǒng)中,成功啟動(dòng)運(yùn)行。
五.總結(jié)
通過如上操作,也只是簡單粗糙的在Linux中啟動(dòng)WebApi,讓我學(xué)習(xí)了.net core也是可以跨平臺(tái)的,也是總結(jié)一下踩坑的經(jīng)驗(yàn),比如說部署Api中如果有Swagger,正常的部署是無法訪問,需要修改配置西信息查看2.3 Swagger配置,后面計(jì)劃繼續(xù)深入,把API部署到Dokcer中,使用nginx來實(shí)現(xiàn)反向代理。雖然這些在工作中完全用不到,就是想學(xué)習(xí)了解,這個(gè)技術(shù)能幫我解決什么問題,只能了解更多,遇到問題才能有多個(gè)解決方法。加油,干飯人!
到此這篇關(guān)于.net core Api 部署到Linux的文章就介紹到這了,更多相關(guān).net core Api 部署到Linux內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
作者:喜歡吃魚的青年
出處:https://home.cnblogs.com/u/2828sea/
- 在Linux+Jexus中發(fā)布和部署Asp.Net?Core
- 在MacOS+Linux+Nginx中發(fā)布和部署Asp.Net?Core
- Linux?CentOS下docker部署Asp.Net?Core(.Net6)
- Linux系統(tǒng)Docker 部署 ASP.NET Core應(yīng)用的流程分析
- .Net Core WebApi部署在Linux服務(wù)器上的方法
- Linux服務(wù)器下利用Docker部署.net Core項(xiàng)目的全過程
- NetCore1.1+Linux部署初體驗(yàn)
- Linux下部署.net core環(huán)境的步驟詳解
- 詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )
- Asp.net Core 初探(發(fā)布和部署Linux)
- 部署ASP.NET?Core程序到Linux系統(tǒng)
相關(guān)文章
ASP.NET MVC5+EF6+EasyUI后臺(tái)管理系統(tǒng) 微信公眾平臺(tái)開發(fā)之資源環(huán)境準(zhǔn)備
這篇文章主要介紹了ASP.NET MVC5+EF6+EasyUI后臺(tái)管理系統(tǒng),微信公眾平臺(tái)開發(fā)之資源環(huán)境準(zhǔn)備,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09動(dòng)態(tài)生成table并實(shí)現(xiàn)分頁效果心得分享
動(dòng)態(tài)生成table并實(shí)現(xiàn)分頁在開發(fā)過程中時(shí)一個(gè)很好的應(yīng)用,接下來本文也要實(shí)現(xiàn)一個(gè)類似效果,感興趣的朋友可以參考下哈2013-04-04VS2017 Cordova Ionic2 移動(dòng)開發(fā)環(huán)境搭建教程
這篇文章主要為大家詳細(xì)介紹了VS2017 Cordova Ionic2 移動(dòng)開發(fā)環(huán)境搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04ASP.NET數(shù)組刪除重復(fù)值實(shí)現(xiàn)代碼
在ASP.NET編程中,要想刪除數(shù)組的重復(fù)值可以使用多種方法代碼實(shí)現(xiàn)相同的效果。今天,在某個(gè)博客中看到某功能代碼中的一小段代碼很不錯(cuò),它就是用來移動(dòng)數(shù)組中相同值的方法,分享給大家2015-10-10asp.net XMLHttpRequest實(shí)現(xiàn)用戶注冊前的驗(yàn)證
用戶注冊前的驗(yàn)證,提高用戶體驗(yàn)。2009-10-10總結(jié)ASP.NET C#中經(jīng)常用到的13個(gè)JS腳本代碼
本文總結(jié)了ASP.NET C#在實(shí)際開發(fā)過程中13個(gè)JS腳本代碼,方便大家在開發(fā)中使用,希望對(duì)大家有用。2016-04-04Net Core Web Api項(xiàng)目與在NginX下發(fā)布的方法
這篇文章主要介紹了Net Core Web Api項(xiàng)目與在NginX下發(fā)布的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03使用母版頁時(shí)內(nèi)容頁如何使用css和javascript
由于網(wǎng)站的主要頻道頁和列表頁的頭部和底部都是一樣的,如果將每個(gè)頁面放在單獨(dú)的頁面中,當(dāng)頭部和底部需要更改時(shí)維護(hù)量太大。于是想把頭部和底部做成母版頁,頻道頁和列表頁的具體內(nèi)容放到內(nèi)容頁中。這樣當(dāng)頭和底需要改動(dòng)時(shí),只要修改一下母版頁就可以了。2009-08-08Asp.net中處理一個(gè)站點(diǎn)不同Web應(yīng)用共享Session的問題
Asp.net中處理一個(gè)站點(diǎn)不同Web應(yīng)用共享Session的問題...2006-09-09