亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET 5 (vNext) Linux部署

2019-11-17 02:07:10
字體:
來源:轉載
供稿:網友

asp.net 5 (vNext) linux部署

引言

工欲善其事,必先利其器. 首先,我們先明確下以下基本概念

Linux相關

Ubuntu

Ubuntu是基于linux的免費開源桌面PC操作系統 十分契合英特爾的超極本定位 支持x86、64位和ppc架構 全面支持網頁瀏覽器 wps。Ubuntu基于Debian發行版和GNOME桌面環境,而從11.04版起,Ubuntu發行版放棄了Gnome桌面環境,改為Unity,與Debian的不同在于它每6個月會發布一個新版本。Ubuntu的目標在于為一般用戶提供一個最新的、同時又相當穩定的主要由自由軟件構建而成的操作系統。

sudo

sudo是linux系統管理指令,是允許系統管理員讓普通用戶執行一些或者全部的root命令的一個工具,如halt,reboot,su等等。這樣不僅減少了root用戶的登錄 和管理時間,同樣也提高了安全性。sudo不是對shell的一個代替,它是面向每個命令的。

apt

Advanced Packaging Tool(apt)是Linux下的一款安裝包管理工具。APT由幾個名字以“apt-”打頭的程序組成。apt-get、apt-cache 和apt-cdrom是處理軟件包的命令行工具。

libuv

跨平臺異步IO庫,是Kestrel Server的必需組件,必須在最終運行前安裝.

VirtualBox

VirtualBox 是一款開源虛擬機軟件。VirtualBox 是由德國 Innotek 公司開發,由Sun Microsystems公司出品的軟件,使用Qt編寫,在 Sun 被 Oracle 收購后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public License (GPL) 釋出 VirtualBox,并提供二進制版本及 OSE 版本的代碼。使用者可以在VirtualBox上安裝并且執行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系統作為客戶端操作系統

curl

cURL curl -O的輸出結果 原作者 Daniel Stenberg 初始版本 1997 穩定版本 7.40.0(2015年1月8日,27天前) 開發狀態 活躍 編程語言 C 操作系統 跨平臺 類型 FTP / HTTP 許可協議 自由軟件:MIT/X derivate license 網站 curl.haxx.se cURL是一個利用URL語法在命令行下工作的文件傳輸工具,1997年首次發行。它支持文件上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱cURL為下載工具。它被廣泛應用在Unix、多種Linux發行版中,并且有DOS和Win32、Win64下的移植版本

Linux相關知識非本文主要內容,其他信息請參考相關文檔.

.NET相關

Mono

Mono是一個由Novell公司(由Ximian發起,并由Miguel de lcaza領導的,一個致力于開創.NET在Linux上使用的開源工程。它包含了一個C#語言的編譯器,一個CLR的運行時,和一組類庫,并實現了 ADO NET和ASP NET。能夠使得開發人員在Linux用C#開發程序。)

DNVM

(.NET Version Manager):由于要實現跨平臺的目的,微軟提供了DNVM功能,DNVM是ASP.NET最底層的內容,他是一組Powershell腳本,用于啟動指定版本的ASP.NET運行環境,并且可以在同一臺機器的同一時間點上通過使用Nuget工具來管理各種版本的ASP.NET運行環境(DNX),以及進行相應的升級操作。

DNX

(.NET Execution Environment):DNX是ASP.NET程序的運行環境,用于啟動并運行ASP.NET程序。該運行環境包括了編譯系統、SDK工具集、Native CLR宿主環境。可以使用DNVM管理各種版本的DNX,如dnvm list命令可以列出所有可用的DNX環境,而dnvm install 0.1-alpha-build-0446則可以將指定版本的DNX安裝到.dnx文件夾,你可以在%USERPROFILE%/.dnx/runtimes 目錄下找到已安裝所有版本的DNX。不同的操作系統有不同的DNX版本。

dnu命令

(DNX Utility):是一個命令行的包管理器,包含在DNX內,所以只要安裝了DNX,就可以使用dnu命令, 其可以用于恢復程序包、安裝程序包、部署程序包等等,比如把project.json里自定義的程序集自動下載下來進行使用。

dnx命令

dnx.exe是用于啟動自宿主環境(Self-Hosting)的命令行工具,在使用命令行代碼進行自宿主環境啟動程序時,dnx負責查找并調用CLR Native Host,dnx命令是整個運行環境的入口點,你可以使用dnx run來啟動程序。

Kestrel

ASP.NET 5 一個基于 libuv 組件的Web Server實現.

NuGet

Nuget是一個.NET平臺下的開源的項目,它是Visual Studio的擴展。在使用Visual Studio開發基于.NET Framework的應用時,Nuget能把在項目中添加、移除和更新引用的工作變得更加快捷方便

關于ASP.NET核心技術,請進一步參考湯姆大叔的博文:

解讀ASP.NET 5 & MVC6系列(4):核心技術與環境配置

安裝Ubuntu

我們以目前比較流行的Ubuntu為例,我的配置環境是:

l 主機: Win8.1 和 VS2015 RC

l 虛擬機: VirtualBox-4.3.28-100309-Win

l Linux: ubuntu-15.04-desktop-amd64

這些軟件的安裝過程都比較人性化了,這里不加累述.

安裝完成并進入系統以后,稍微清理下左側的快捷方式,拖出常用的終端命令,我們到如下界面,準備進入下一步的安裝.

安裝MONO

通過下列命令行,安裝MONO – 下載時間可能很長.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list

echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list

sudo apt-get update

sudo apt-get install mono-devel

建議依次運行如果有問題重新運行有問題的命令.看到如下結果表示Mono安裝完成:

如果安裝沒有順利完成,請參考MONO Project網站尋找最新的安裝方法.

http://www.mono-project.com/docs/getting-started/install/linux/

安裝DNVM

首先需要安裝curl程序

sudo apt-get install curl

然后利用curl安裝DNVM

curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

安裝完畢以后,利用dnvm升級命令獲取最新運行環境

dnvm upgrade

如果遇到更新失敗,可以加入-f參數強行覆蓋更新.

最后運行下面的命令,確認當前安裝的運行環境

dnvm list

由于目前VS2015 RC的dnx版本是1.0.0-beta4,所以這里請保證當前活躍版本就是1.0.0-beta4. (我這里裝的比較雜,其實沒有11855那2個也是可以的)

此外可以發現dnx和dnu 2個命令(可以在控制臺運行這2個命令,看到幫助信息)都已經部署完畢,到此dnvm安裝結束.

配置ASP.NET代碼

在Window主機中, 利用VS 2015建立一個vNext版本的WebApi程序.

這里把這個項目命名為 WebApi2015. 建立完畢后,把程序目錄打包傳送到Ubuntu虛擬機.

在虛擬機任意目錄解壓.

另外我們再非Windows環境可以采用Visual Studio Code進行代碼的編輯,這個工具非常容易安裝,具體安裝方法可以參考官網:

https://code.visualstudio.com/Docs/setup

雖然這個工具還不如VS方便,但比起文本編輯器還是高級了許多:

下面我們對項目文件做些調整:

l 加入Kestrel組件的引用,這個是Linux環境下必選的Web Server.

l 加入Kestrel的命令行,把啟動URL設為http://localhost:5000, 這個步驟是必須的,否則后續的dnx命令將無法執行.

l 把Project_Readme.html移入wwwroot作為一個可以展示的靜態頁面.

當然這些調整也可以再Windows里面先調整好,再拷貝過來.

部署和運行

打開一個終端,把當前路徑設置到我們項目中的src/WebApi2015中,也就是project.json所在目錄.

首先利用dnu命令進行所有相關組件的恢復操作:

dnu restore

注意這里經常因為網絡問題而中斷,反復執行這個命令皆可.(不要輕易強行中斷這個命令,會造成壞包),直到出現大量的installing信息并完成project.lock.json文件,恢復過程才算順利結束,如下圖:

然后運行下面命令執行此ASP.NET 5程序.

dnx . kestrel

不過這個時候可能依然會報錯,是因為一般新安裝的系統還沒有libuv組件.最終,我們還需要利用下面的命令來安裝libuv組件.

sudo apt-get install automake libtool

curl -sSL https://github.com/libuv/libuv/archive/v1.4.2.tar.gz | sudo tar zxfv - -C /usr/local/src

cd /usr/local/src/libuv-1.4.2

sudo sh autogen.sh

sudo ./configure

sudo make

sudo make install

sudo rm -rf /usr/local/src/libuv-1.4.2 && cd ~/

sudo ldconfig

安裝完畢以后,再運行 dnx . kestrel , 運行通過

利用瀏覽器訪問 http://虛擬機ip:5000/Project_Readme.html 或者 http://虛擬機IP:5000/api/values 可以看到頁面和默認WebApi返回內容. 如果興趣,還可以在wwwroot加入其他頁面或者在Controller里面加入其他WebApi來進行嘗試 – 甚至可以加入Controller , View 和 Model文件來顯示MVC的內容.

結束語

當然,目前我們運行的程序還僅僅是一個非常簡單的版本,還沒有包括EF, SignalR, Identity等復雜組件,但從整個部署過程中,我們可以感覺到其實差距已經很小. 首先運行和部署環境DNVM和dnu, dnx命令和VS 2015的環境是一致的,而且組件包都是從Nuget上獲取,這和標準的Windows開發環境并沒有太大區別, 所以可以預見,即使是更復雜的ASP.NET 5應用程序,依然可以完整的部署到Linux環境上來, 加上未來EF技術對MSSQL等跨平臺數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频axxx| 在线观看国产成人av片| 亚洲娇小xxxx欧美娇小| 国产亚洲福利一区| 欧美激情亚洲另类| 午夜精品www| 国产欧美日韩丝袜精品一区| 国产亚洲精品久久| 亚洲qvod图片区电影| xxx一区二区| 夜夜嗨av一区二区三区免费区| 97人人模人人爽人人喊中文字| 欧美精品在线播放| 深夜成人在线观看| 亚洲精品色婷婷福利天堂| 久久久国产精彩视频美女艺术照福利| 国产一区二区三区在线观看网站| 久久国产精品影片| 亚洲深夜福利网站| 欧美亚洲国产日韩2020| 国产成人极品视频| 亚洲黄色www网站| 久久九九有精品国产23| 欧美大片免费观看在线观看网站推荐| 久久99精品久久久久久青青91| 精品国产乱码久久久久久虫虫漫画| 国产精品扒开腿做爽爽爽视频| 国产不卡精品视男人的天堂| 亚洲美女动态图120秒| 日韩小视频网址| 亚洲香蕉成人av网站在线观看| 亚洲精品日韩av| 最近免费中文字幕视频2019| 国产99久久精品一区二区 夜夜躁日日躁| 精品久久中文字幕久久av| 国产亚洲免费的视频看| 亚洲激情国产精品| 综合国产在线观看| 国产精品高清网站| 亚洲mm色国产网站| 亚洲国产天堂网精品网站| 亚洲乱码一区二区| 欧美日韩国产精品一区| 国产+人+亚洲| 91精品久久久久久久久久另类| 麻豆乱码国产一区二区三区| 久久中文字幕视频| 亚洲韩国欧洲国产日产av| 欧美不卡视频一区发布| 国产成人高清激情视频在线观看| 欧美裸体男粗大视频在线观看| 在线免费看av不卡| 欧美电影《睫毛膏》| 欧美日韩中文字幕在线| 亚洲伊人久久综合| 精品爽片免费看久久| 欧美第一黄网免费网站| 一区二区欧美亚洲| 在线精品91av| 国产女人精品视频| 久久久国产在线视频| 国产精品视频yy9099| 在线观看精品自拍私拍| 亚洲欧美在线第一页| 国产精品老女人视频| 国产精品扒开腿做爽爽爽男男| 狠狠躁夜夜躁人人爽超碰91| 久久男人av资源网站| 中文字幕在线国产精品| 日本三级韩国三级久久| 亚洲欧美激情一区| 国产日本欧美一区| 久热精品视频在线免费观看| 91亚洲永久免费精品| www.色综合| 国产精品久在线观看| 2019亚洲日韩新视频| 色婷婷综合久久久久中文字幕1| 国产成人精品一区| 成人午夜黄色影院| 亚洲视频在线免费观看| 上原亚衣av一区二区三区| 国产91免费看片| 亚洲亚裔videos黑人hd| 成人欧美一区二区三区黑人| 国产亚洲视频中文字幕视频| 国产精品久久色| 欧美亚洲激情在线| 久久成人这里只有精品| 国产在线精品一区免费香蕉| 91精品视频网站| 国模吧一区二区| 91高清视频免费| 国产精品吊钟奶在线| 人人做人人澡人人爽欧美| 国产精品7m视频| 2019亚洲男人天堂| 一区三区二区视频| 国产一区二区三区欧美| 国产一区二区三区日韩欧美| 欧美激情第一页xxx| 国产做受69高潮| 久久久久一本一区二区青青蜜月| 亚洲成人久久久久| 中文字幕成人精品久久不卡| 欧美日韩国产一中文字不卡| 成人欧美在线视频| 91国内免费在线视频| 欧美丰满少妇xxxxx| 欧美日韩精品国产| 欧美最猛性xxxxx(亚洲精品)| 91免费福利视频| 亚洲国产成人精品女人久久久| 疯狂做受xxxx欧美肥白少妇| 久久99青青精品免费观看| 欧美性生交xxxxxdddd| 久久久国产一区| 第一福利永久视频精品| 这里只有精品视频| 日韩动漫免费观看电视剧高清| 浅井舞香一区二区| 国产一区二区精品丝袜| 人人做人人澡人人爽欧美| 日韩中文理论片| 国产精品一区二区电影| 亚洲国产高清高潮精品美女| 精品人伦一区二区三区蜜桃免费| 亚洲国产欧美一区二区三区同亚洲| 色综合天天综合网国产成人网| 久久精品久久久久久国产 免费| www.99久久热国产日韩欧美.com| 亚洲国产精品va在看黑人| 欧美精品在线免费播放| 午夜免费日韩视频| 青青在线视频一区二区三区| 亚洲精品电影久久久| 日韩精品视频在线免费观看| 精品国产一区二区三区四区在线观看| 日本久久中文字幕| 中文字幕亚洲无线码a| 亚洲一区二区久久久久久| 正在播放欧美一区| 欧美成人精品一区二区三区| 国产精品福利网| 91久久久久久久| 国精产品一区一区三区有限在线| 日韩av理论片| 亚洲午夜精品久久久久久性色| 亚洲欧美日韩高清| 久久久av网站| 国产精品毛片a∨一区二区三区|国| 久久99国产精品久久久久久久久| 日韩久久精品成人| 欧美性xxxx极品hd欧美风情| 国产精品久久久久久久久免费看| 九九热精品视频国产| 6080yy精品一区二区三区| 亚洲精品永久免费精品| 97精品国产97久久久久久| 欧美精品在线极品| 欧美一级成年大片在线观看| 久久久免费观看视频| 九九精品在线视频| 一本色道久久综合狠狠躁篇的优点|