選擇上面的工具--》NuGet包管理器--》管理解決方案的管理包html
搜索Swashbuckle.AspNetCore,並安裝便可nginx
Swashbuckle.AspNetCore
找到項目的中Startup.cs 文件,修改內容以下:shell
代碼以下:json
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(); }); }
首先啓動項目,以後會生成一個Demo1.xml文件,以下圖所示,單擊文件Demo.xml文件,修改複製到輸出目錄:若是較新則複製api
選擇項目名稱,右鍵選擇發佈瀏覽器
選擇文件夾,以後選擇下一步,選擇完成便可。服務器
點擊發布按鈕便可app
使用Xftp軟件,把本地發佈的文件上傳到Linux系統中asp.net
到此,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來實現反向代理。雖然這些在工做中徹底用不到,就是想學習瞭解,這個技術能幫我解決什麼問題,只能瞭解更多,遇到問題纔能有多個解決方法。加油,乾飯人!