在 Mac/Linux 上執行 ASP.NET 5 (ASP.NET vNext, ASP.NET MVC 6)的網站應用程式

ASP.NET vNext 重新設計 ASP.NET 核心並且開源之後,要在非 Windows/IIS 的環境下執行 ASP.NET 的應用程式不再是不可能的事,這篇文章介紹如何在 Mac OSX 環境下執行 ASP.NET 5(或是 ASP.NET vNext、ASP.NET MVC 6)的網站或應用程式。

  1. 新的 ASP.NET 核心代號是 K,而一切的操作都是透過 K Version Manager(kvm) 完成,若是在 Mac OSX 下,可以透過 Homebrew 簡單快速安裝 KVM,當然你也可以直接從 https://github.com/aspnet/home 這裡取得,透過 Homebrew 安裝可以執行下面的指令:

    brew tap aspnet/k<br>brew install kvm

  2. 順利安裝完成後,視你的 shell 是 base、zsh 就在 ~/.bashrc~/.zshrc 裡加上一行 source kvm.sh 才會有一個 kvm 的函式可以完成後面的操作。

  3. 先執行 kvm upgrade 確定安裝最新版本的 K Runtime (KRE), 目前在 Mac/Linux 上還是用 Mono 的版本來執行 ASP.NET 的應用程式,將來可望換成 .NET Core (為雲端優化的 .NET 核心執行環境)的版本來執行

  4. 下載一個 ASP.NET vNext 的範例程式,這個可以在 https://github.com/aspnet/home 下可以找 samples/ 資料夾下的東西(比方說 HelloMvc)。

  5. 到 ASP.NET 專案的目錄下(就是有 project.json 檔案的那一層),先執行 kpm restore 將需要的相關 ASP.NET 套件 (到 NuGet 上)抓下來。

    順利完成下載套件後,再執行 k kestrel 就會啟動 KRE 執行一個 web server,預設是開在 port 5004,所以只要開瀏覽器到 https://localhost:5004 就可以看到 ASP.NET 應用程式了。

    若是在 Windows 下則是執行 k web 來啟動,而且 port 開在 5001,這個部份可以看 project.json 檔案裡的 commands部份的設定。

     ...
    "commands": {
      "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls https://localhost:5001",
      "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls https://localhost:5004"
    }
    ...