.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新建一個API項目

2.2安裝Swagger
選擇上面的工具--》NuGet包管理器--》管理解決方案的管理包

搜索Swashbuckle.AspNetCore,并安裝即可
Swashbuckle.AspNetCore

2.3配置Swagger
找到項目的中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é)點
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ù)對swagger-ui,指定Swagger JSON終結(jié)點
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文檔

首先啟動項目,之后會生成一個Demo1.xml文件,如下圖所示,單擊文件Demo.xml文件,修改復(fù)制到輸出目錄: 如果較新則復(fù)制

三.發(fā)布API
3.1發(fā)布程序
選擇項目名稱,右鍵選擇發(fā)布

選擇文件夾,之后選擇下一步,選擇完成即可。

點擊發(fā)布按鈕即可

3.2上傳程序
使用Xftp軟件,把本地發(fā)布的文件上傳到Linux系統(tǒng)中

到此,API已經(jīng)創(chuàng)建,也上傳到服務(wù)器了。
四.啟動項目
使用Xshell工具,連接到我們的Linux操作系統(tǒng),使用cd path 命令進入到之前上傳的文件夾中。
進入目錄:cd /home/www/test
查看文件列表:ls

輸入命令:dotnet Demo1.dll,如下圖所示,這是成功的在Linux中啟動了我們發(fā)布的API項目。

192.168.6.130:把你Linux的IP替換我的這個192.168.6.130,在訪問
在你的瀏覽器中輸入:http://192.168.6.130:5000/index.html

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

