1. 程式人生 > >linux上用vscode寫dotnet core web api

linux上用vscode寫dotnet core web api

 dotnet core 跨平臺已不再是夢,它帶來的意義非凡,比如api介面可以在linux上編寫及部署,也可以在windows上編寫好,打包釋出,然後copy到linux上部署。

       安裝 Ubuntu

        

       從官網下載最新版本,如上圖,然後裝到虛擬機器VMware中。如果是centeros,系統開啟後,預設進入命令列模式,估計一部分同學,看到類似dos介面,有點恐慌,不急,在命令列中輸入startx回車,進入到圖形介面。無論是哪種系統,虛擬機器上裝的作業系統,在開機啟動後,都有可能視窗不能自適應,也就是說不能全屏,非常小。針對windows,直接執行VMware Tools即可。針對linux系統,我們直接雙擊是安裝不了的。這是Ubuntu漂亮的紫色介面:

輸入密碼,登入到系統中。定位到VMware Tools安裝目錄,它還是tar.gz壓縮檔案,所以首先解壓縮,用cd命令轉到解壓後的目錄(直接開啟目錄,然後滑鼠右鍵開啟終端,就不用cd了),輸入./vmware-install.pl,一路回車。

安裝vscode

從官網下載vscode,上面有註明作業系統。centeros是從redhat發展而來的。ubantu是基於Debian。前者擅長伺服器端,後者主要是pc端。

1、下載安裝包 .deb package (64-bit)

2、sudo apt install ./<file>.deb

3、Then update the package cache and install the package using:

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install code # or code-insiders

 linux上安裝vscode的確能麻煩一些。安裝完了後,不知道裝到哪兒去了。於是就搜尋vscode,沒有找到,搜尋全名也沒有找到,後來發現名稱叫code,終於搜尋到了,把code加入到桌面的收藏夾裡,就出現在桌面左側,相當windows的桌面快捷方式。如下圖:

 

 部署dotnet core web API

     在命令列中,輸入 dotnet  new webapi,結果不識別dotnet,它不是命令,建議安裝.net core sdk,我裝了最新的版本2.2。然後再執行命令建立api。

    打包釋出的命令:dotnet publish --configuration Release

    自託管命令: dotnet ElectronInfoApi.dll

    預設監聽的地址:https://localhost:5001

    我想要改變埠,在網上找了一種方法:

var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls("https://localhost:5001/")
.Build();

host.Run();

更改url或者埠都可以,這就是傳說中的硬編碼。因為上面的程式碼是在 Main(string[] args)方法裡,所以可以從命令列傳參,經過實踐,這種方式是可以的。傳參:dotnet ElectronInfoApi.dll  server.urls=https://192.168.19.1:9000,程式碼中接受引數:var  url=args.Length>0?args[0]:" ";

還有另外一種方法,就是什麼都不用修改:

    public class Program {
        public static void Main(string[] args) {
            CreateWebHostBuilder(args).Build().Run();
        }
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 
            WebHost.CreateDefaultBuilder(args)
                .UseStartup <Startup> (); 
    }

這是命令列建立api的時候,自動生成的程式碼,釋出後執行結果:

IIS或者其它伺服器上部署,埠配置,都有圖形化介面操作,不是什麼問題。我在linux上釋出了介面,然後window上的vue程式就可以請求了。先在postman中測試:

好了,這樣linux上的介面部署完畢,測試成功。