在 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)的網站或應用程式。
新的 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
順利安裝完成後,視你的 shell 是 base、zsh 就在
~/.bashrc
、~/.zshrc
裡加上一行source kvm.sh
才會有一個kvm
的函式可以完成後面的操作。先執行
kvm upgrade
確定安裝最新版本的 K Runtime (KRE), 目前在 Mac/Linux 上還是用 Mono 的版本來執行 ASP.NET 的應用程式,將來可望換成 .NET Core (為雲端優化的 .NET 核心執行環境)的版本來執行 。下載一個 ASP.NET vNext 的範例程式,這個可以在 https://github.com/aspnet/home 下可以找 samples/ 資料夾下的東西(比方說 HelloMvc)。
到 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" } ...