微軟前段時間推出asp.net vnext,自個也嘗試了一把,也寫了幾篇關於vnext特性的博客,如下。
但一直有個困擾的問題,asp.net vnext如何在iis部署,因為整個目錄結構跟之前有了很大的不同,用f5直接運行啟動iis express很方便查看結果,但如果部署到線上,就要用到iis,之前一直沒找到合適的方案,很是郁悶,終於在昨天搞到深夜將這個問題解決了,那本文就是講解如何通過vs2015部署vnext web項目。
大致的方案是通過http://codedbeard.com/asp-net-5-0-deploy-to-local-iis/
1、首先通過vs2015新建一個web項目
2、web站點項目右鍵屬性,修改Build和Debug屬性
如果你的操作系統是64位的,在Application處Target KRE version屬性處選擇64位
在bulid屬性處勾選"Produce outputs on build"
勾選此處的目的是為了避免瀏覽時出現Couldn't find package 'KRE-CLR-amd64.1.0.0-beta1'. Locations probed:
問題
在Debug屬性處Debug target選擇web
2、發布站點
a)在web站點項目文件上右鍵屬性,發布彈出如下對話框
b)connection處選擇file system ,具體如下圖,在這里選擇一個文件夾位置輸出。
c)設置輸出,選擇KRE 版本,由於本機是64位的,這里選擇64位CLR
3、在iis上新建站點,TestIISDeploy,選擇物理路徑,這里要注意目錄要深一層到wwwroot,不像以前直接是根目錄
到這里,然后瀏覽站點,就會發現已經可以了,昨天晚上我再發布的時候,會提示如下錯誤
然后選擇執行該站點目錄下的web.cmd(D:\Code\Web\publish\GaokaoWeb\web.cmd)文件,記得以管理員方式運行才可,運行正常會彈出如下框
這樣在瀏覽器地址欄輸入如下地址即可:http://localhost/
另外上述需要kre支持,kre安裝方法如下:
初次使用要安裝k gen,安裝英文教程見此鏈接,或執行如下步驟,前提是vs2015已安裝。
(1)打開vs2015,新建web項目
(2)以管理員身份運行cmd,輸入如下命令,進行安裝kvm
powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.ps1'))
(3)打開新的cmd窗口,輸入如下兩條命令,進行更新kvm的最新版本,執行完后重啟vs
set KRE_NUGET_API_URL=https://www.myget.org/F/aspnetvnext/api/v2
kvm upgrade
(4)打開控制台輸入kvm list看安裝結果