.net core Api 部署到Linux的方法步驟
一.環(huán)境介紹
1..net開(kāi)發(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.開(kāi)發(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);
// 添加控制器層注釋?zhuān)瑃rue表示顯示控制器注釋
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)目名稱(chē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,在訪問(wèn)
在你的瀏覽器中輸入:http://192.168.6.130:5000/index.html

到此,我們就完成一個(gè)Asp.net core發(fā)布的API,部署到Linux系統(tǒng)中,成功啟動(dòng)運(yùn)行。
五.總結(jié)
通過(guò)如上操作,也只是簡(jiǎn)單粗糙的在Linux中啟動(dòng)WebApi,讓我學(xué)習(xí)了.net core也是可以跨平臺(tái)的,也是總結(jié)一下踩坑的經(jīng)驗(yàn),比如說(shuō)部署Api中如果有Swagger,正常的部署是無(wú)法訪問(wèn),需要修改配置西信息查看2.3 Swagger配置,后面計(jì)劃繼續(xù)深入,把API部署到Dokcer中,使用nginx來(lái)實(shí)現(xiàn)反向代理。雖然這些在工作中完全用不到,就是想學(xué)習(xí)了解,這個(gè)技術(shù)能幫我解決什么問(wèn)題,只能了解更多,遇到問(wèn)題才能有多個(gè)解決方法。加油,干飯人!
到此這篇關(guān)于.net core Api 部署到Linux的文章就介紹到這了,更多相關(guān).net core Api 部署到Linux內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
作者:喜歡吃魚(yú)的青年
出處: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)目的全過(guò)程
- 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)文章
.NET實(shí)現(xiàn)ChatGPT的Stream傳輸?shù)倪^(guò)程
這篇文章主要介紹了.NET如何實(shí)現(xiàn)ChatGPT的Stream傳輸,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
asp.net Gridview數(shù)據(jù)列中實(shí)現(xiàn)鼠標(biāo)懸浮變色
Gridview一般朋友們都比較常用,因?yàn)樗梢苑奖憧旖莸膶?shí)現(xiàn)我們所需的很多功能,代碼也比較簡(jiǎn)潔。平時(shí)的項(xiàng)目中這個(gè)控件我也比較常用,其中有個(gè)功能用到的頻率也比較多。所以記錄下備忘。2010-06-06
asp.net中不能在DropDownList中選擇多個(gè)項(xiàng) 原因分析及解決方法
不能在 DropDownList 中選擇多個(gè)項(xiàng),在前一步操作的過(guò)程中,已經(jīng)選擇了某個(gè)Item2012-10-10
給Asp.Net初學(xué)者的關(guān)于繼承和多態(tài)性的例子
給Asp.Net初學(xué)者的關(guān)于繼承和多態(tài)性的例子...2006-09-09
.NET?Core?線程池(ThreadPool)底層原理源碼解析
文章介紹了.NET?Core線程池的結(jié)構(gòu)和工作原理,包括生產(chǎn)者-消費(fèi)者模型、線程饑餓問(wèn)題、線程池增長(zhǎng)策略等,同時(shí),對(duì)比了Task和線程池在并發(fā)編程中的優(yōu)缺點(diǎn),并推薦使用Task來(lái)優(yōu)化線程池的使用,感興趣的朋友一起看看吧2024-11-11
asp.net core實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了asp.net core實(shí)現(xiàn)文件上傳功能,怎么做單文件和多文件上傳,感興趣的小伙伴們可以參考一下2016-06-06
asp.net(C#)實(shí)現(xiàn)功能強(qiáng)大的時(shí)間日期處理類(lèi)完整實(shí)例
這篇文章主要介紹了asp.net(C#)實(shí)現(xiàn)功能強(qiáng)大的時(shí)間日期處理類(lèi),封裝了針對(duì)日期與時(shí)間的各種常用的判斷與計(jì)算功能,非常方便實(shí)用,需要的朋友可以參考下2016-06-06
ASP.NET Ajax級(jí)聯(lián)DropDownList實(shí)現(xiàn)代碼
我想大家對(duì)Ajax已耳熟能詳。自web 2.0概念出現(xiàn)以后,提供更好的用戶(hù)體驗(yàn)變得越來(lái)越重要。那么今天我來(lái)講解一下如何使用ASP.NET Ajax和web service構(gòu)建無(wú)刷新級(jí)聯(lián)DropDownList(以下簡(jiǎn)稱(chēng)為級(jí)聯(lián)DDL)。完成的效果圖2008-12-12
ASP.NET MVC5網(wǎng)站開(kāi)發(fā)之展示層架構(gòu)(五)
這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC5網(wǎng)站開(kāi)發(fā)之展示層架構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08

