Coding 之路,不由分說 .Net,MVC,jQuery

2六月/150

如何部屬 ASP.NET 5 網站到 IIS

Google PageRank查詢

前言

前陣子微軟釋出 Visual Studio 2015 RC 之後,也花了點時間玩玩新版的 ASP.NET 5,發現真的改變很大,整個專案結構和發佈檔案結構都有明顯的不同,發佈之後當然是要執行網站了,官方文件說明如何執行一個網站都是新的方式,執行指令來啟動網站的方式,但是都沒有提到部屬到 IIS 的相關說明,但是微軟又不可能不支援自己的 IIS 啊!於是自己試著部屬到 IIS 上面,遇到了一些問題,解法真的相當簡單,就做個記錄說明源由囉!

說明

建立專案

開啟 VS2015 建立一個新的專案,選擇 ASP.NET Web 應用程式,並且確認 .Net Framework 版本為 4.6

Image 1.png

選擇 ASP.NET 5 Preview 範本底下的 Web Site 專案範本

Image 2.png

選擇完輸入專案名稱等資訊就等 VS 幫我們建立好專案囉!

發佈檔案

然後就直接設定發佈的資訊吧!在發佈設定裡選擇「檔案系統」

Image 3.png

然後設定發佈的位置

Image 4.png

再來是基本的組態設定,這邊先用預設值吧!後面說明就會知道這邊設定會怎麼影響到發佈的檔案。

Image 5.png

最後就是發佈檔案

Image 6.png

發佈之後會產生以下的檔案和目錄,這邊就不一一說明目錄和檔案的用途

Image 9.png

不過有一個目錄可以注意一下,在 approot\src 底下我們會發現我們程式的 View 和 原始的 CS 檔案都在這邊,這樣給客戶部屬檔案的時候,我們的原始碼不就很簡單的被看光光了啊!(雖然編譯之後也是很容易反組譯...XD)

Image 10.png

還記得前面說的發佈的設定嗎?這時候我們把選項「在發行期間先行編譯」打勾吧!這邊避免有多於檔案,我也把「發行前把所有現有檔案刪除」也打勾了,然後再重新發佈一次檔案

Image 11.png

這時候就會發現 approot 目錄底下沒有 src 了,那我們的 View 檔案和編譯後的檔案跑去哪了?

Image 13.png

這時候進去 approot\packages 目錄底下,可以發現一個和專案名稱相同的目錄,我的範例是 MVCTest

Image 14.png

就可以在裡面發現到編譯之後的檔案囉!

Image 15.png

設定 IIS

和一般網站設定一樣的建立一個網站,注意這邊指定的目錄是發佈檔案的  wwwroot  目錄

Image 16.png

然後我們就會很開心的看到錯誤啦!如果沒有出現錯誤的話,就恭喜你的系統不是64位元的,所以預設設定是正常的。

Image 17.png

就像上面說的是因為電腦是64位元的關係,所以我們來解決這樣的錯誤吧!

解法一:
到應用集區設定進階設定,把啟用32位元應用程式設定成 true 就可以了,但是比較不建議使用此方式,畢竟我們系統是64位元的,用64位元去執行程式會比較好一點

Image 18.png

解法二:
既然我們是64位元的系統,那還是用 64 位元的方式處理,這時候再回到發佈的設定,這一次我們選擇 64 位元的 clr 吧

Image 20.png

至於發佈之後的檔案有什麼差別,比較 approot\packages 這個目錄就可以發現到不同囉!

Image 21.png

最後就是看到網站正常跑起來囉!

Image 22.png

結論

雖然有點像是低級的錯誤,但是因為沒有文件說明,搞了好久都無法成功,今天剛好發現到解法,就把解決的過程說明一下,順便把部屬的流程跑過一次,希望對大家有一點幫助囉!

參考資料

Publish ASP.NET 5 app and run in IIS 8.5 using cmd & VS2015 RC
ASP.NET 5 GitHub

回覆 (0) 引用 (0)

還沒有回覆。


Leave a comment

目前沒有人引用這篇文章。