10分鍾學會在windows/Linux下設置ASP.Net Core開發環境並部署應用


創建和開發ASP.NET Core應用可以有二種方式:最簡單的方式是通過Visual Studio 2017 來創建,其優點是簡單方便,但需要安裝最新版本Visual Studio 2017 preview 15.3 。另一種方式是使用Visual Studio Code來創建,Visual Studio Code 則是一款輕量級的編輯器 ,可在多種操作系統中運行,如果情況允許,筆者更建議使用Visual Studio Code來進行開發,可在多種平台開發,同時也更靈活,享受更多開發的樂趣。

1.1. 先決條件

1.1.1. 安裝.NET Core 2.0

開發ASP.NET Core 2.0的應用,前提是需要安裝.NET Core 2.0 正式版。

下載地址https://www.microsoft.com/net/download/core

安裝完成后,可在命令行(cmd)中鍵入命令查看安裝信息:

dotnet --info

安裝信息如下圖,表示.NET Core 2.0 已經成功安裝

2017-08-20-22-07-28

1.1.2. 安裝Visual Studio 2017

如果需要使用Visual Studio 2017 來開發,需要安裝 Visual Studio 2017 Preview version 15.3,個人開發者可選擇社區版,社區版的功能對於日常的開發已經足夠,並且是免費。

下載地址 https://www.visualstudio.com/vs/preview/?dotnetid=639356346.1501080398

下載完成后可選擇相應的工作負載來安裝,如果只是運行ASP.NET Core應用則可以只安裝響應部分,如下圖所示:

安裝Visual Studio

1.1.3. 安裝Visual Studio Code

Visual Studio Code 是一個輕量級的源代碼編輯器,可以運行在Windows,MacOs,和Linux。通過安裝擴展可用來開發諸如C++、C#、 Python、PHP、Go等語言。

下載地址(https://code.visualstudio.com/)[https://code.visualstudio.com/]

安裝完成后,需要安裝c#開發擴展如下圖所示

vscode

1.2. 通過Visual Studio 2017 創建應用

通過Visual Studio 2017 創建應用非常簡單,在新建項目時選擇 ASP.NET Core webapplication即可

create asp.net core webapplication

在確認選擇后,還會彈出一個對話框,選擇代碼結構模板,此處任意選擇Web Application(MVC),項目即可生成完畢。在Visual Studio 2017中點擊運行,一個ASP.NET Core 網站即可運行。

mvcmoive

1.3. 通過Visual Studio Code 創建應用

首先可在本地新建文件夾,然后打開Visual Studio Code ,選擇打開剛才的文件夾

open vscode

在主菜單中依次選擇“查看” > “集成終端”。在集成終端中輸入 dotnet new mvc 命令,文件夾中會生成 mvc 的模板

2017-08-23-23-13-44

模板建立好后,可在集成終端中輸入dotnet run 命令,mvc 站點即可運行。

2017-08-23-23-14-23

要在Visual Studio Code 中調試程序,需要配置調試器,點擊調試配置,選擇.NET Core配置文件

configure

此時會生成launch.json文件,文件中有三種launch方式,以web節點為例

{
    "name": ".NET Core Launch (web)",
    "type": "coreclr",
    "request": "launch",
    "preLaunchTask": "build",
    "program": "${workspaceRoot}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
    "args": [],
    "cwd": "${workspaceRoot}",
    "stopAtEntry": false,
    "launchBrowser": {
        "enabled": true,
        "args": "${auto-detect-url}",
        "windows": {
            "command": "cmd.exe",
            "args": "/C start ${auto-detect-url}"
        },
        "osx": {
            "command": "open"
        },
        "linux": {
            "command": "xdg-open"
        }
    }
}

將program節點中的路徑改為自己程序集的路徑即可,例如${workspaceRoot/bin/Debug/netcoreapp2.0/WebApplicationSample1.dll然后點擊左側調試圖標,在左上角可選擇啟動調試,啟動后會彈出,對話框提示找不到build命令,選擇配置任務運行程序。

2017-08-23-23-12-20

配置完成后會多一個task.json文件,此時再次開啟調試,便可運行調試。

debug

2017-08-23-23-13-01

1.4. 托管ASP.NET Core 應用

托管 ASP.NET Core 應用有多種方式,即可在傳統的windows平台,也可以部署在開源的Linux上,還可以通過docker容器來部署,本節將講解多種方式部署 ASP.NET Core 應用

1.4.1. Windows平台托管ASP.NET Core應用

ASP.NET Core 應用需要一個Host , Host必須要實現IWebHost接口,接口包括Start方法。創建一個Host 需要使用WebHostBuilder,它會返回一個WebHost實例,用於處理請求。

在上一節所創建的ASP.NET Core應用中,可以看到Program.cs文件中的 'void Main'方法,此方法是整個應用的入口,在入口中調用了CreaDefaultbuilder來創建Host,代碼如下:


public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

CreateDefaultBuilder創建了WebHostBuilder的實例來構建啟動 server 的 host。host需要一個實現IServer接口的server。內建的Web server 包括 Kestrel 和 Httpsys,默認使用Kestrel.在命令行工具中執行dotnet run命令,此時即可啟動整個應用。

run

在ASP.NET Core中可以用兩種HTTP server,它們請求原理如圖所示:

Kestrel

HttpSys

Kestrel 是跨平台的HTTP server 基於libuv(一個跨平台的異步I/O library)

Httpsys 是基於Windows內核驅動程序Http.Sys的HTTP server。Http.Sys是成熟的技術,可以防范多種攻擊,並提供全功能Web服務器的魯棒性,安全性和可擴展性。IIS本身作為HTTP偵聽器運行在Http.Sys之上。

在windows平台上還可以使用Http.Sys作為Web Server

    WebHost.CreateDefaultBuilder(args)
							 .UseStartup<Startup>()
							 .UseHttpSys()
							 .Build();

1.4.2. Linux平台下托管ASP.NET Core應用

由於ASP.NET Core的跨平台性,因此在Liunx環境下也可以使用,需要注意的是在Linux環境下是不能選擇Http.Sys作為Web server,而只能選擇Kestrel。本文選用 Ubuntu 16.04 系統,作為示例。

第一步:注冊微軟key為可信任

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg

注:如果沒有curl需要安裝curl。命令 sudo apt-get install curl

第二步:將微軟的安裝地址設為可信任的列表


sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main" > /etc/apt/sources.list.d/dotnetdev.list'

第三步:更新apt-get版本


sudo apt-get update

第四步:更新完成后即可安裝最新.NET Core 2.0


sudo apt-get install dotnet-sdk-2.0.0

安裝完成后使用如下命令查看.NET Core 版本信息


dotnet --info

2017-08-20-14-29-41

使用命令生成項目模板


dotnet new mvc -o app

以上命令會在當目錄下面創建一個app文檔夾,首先我們要將根路徑跳轉到app文件夾下面


cd app

最后我們要將ASP.NET Core應用在Linux環境下托管起來,只需要運行下面一條命令


dotnet run

2017-08-20-14-32-52

如果選擇Http.Sys作為Linux下的服務器則會拋出異常

2017-08-23-23-11-01

1.5. 總結

從本節可以看出,不管是在傳統的Windows環境還是Linux環境,都能通過Visual Studio Code開發ASP.NET Core 應用程序,同樣的在Windwos環境和Linux都可以使用ASP.NET Core自帶的Web server來托管應用。


參考資料

【1】http://www.microsoft.com/net/core#linuxubuntu


作者:帥蟲哥 出處: http://www.cnblogs.com/vipyoumay/p/7420436.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM