天天看點

在IIS中運作asp.net 5 web應用程式

該文章為DNX beta階段

asp.net 5 跟之前的 asp.net 不太一樣,微軟對asp.net 進行了重新設計,使得部署在IIS 上不再是簡單的複制檔案就能行的(其實就是 dnu publish 這個指令預設打包好的不能直接用)!

要點:

1.準備好  dnu publish 指令所有生成的包, 一般在 ~/bin/output/ 裡面

你會發現裡面有 AppRoot和 wwwRoot 檔案夾,  說明一下, AppRoot 是你的應用程式根目錄, 而 wwwRoot 是網站根目錄

然後,你就迷茫了, 怎麼 網站根目錄裡面沒啥東西, 還有外面的 應用程式根目錄又是咋回事?

2.  打開IIS 管理器, 添加 網站,将網站根目錄指定到wwwRoot 檔案夾

現在問題來了, 應用程式目錄 在網站外面肯定是不能運作的,然後我們把approot 移動到 wwwroot 裡面,然後最重要的問題來了, 修改web.config

這裡我們要把appsetting 裡面的 dnx-app-base 和 runtime-path 的位置修改一下, 需要注意的是 根目錄不能再用“~/”了,這裡要麼要借助 web.config 的位置 使用“./” (解釋一下: 我們的 ~/ 變成了  dnx-app-base 裡面定義的路徑,注意 runtime-path 這裡,如果你的approot/packages/ 裡面沒有運作時那個檔案夾 如:dnx-clr-win-x86.1.0.0-beta5, 你就需要到%userprofile%\.dnx\runtimes\ 裡面 複制一個進來)

3. 到這裡應該就能運作了, 如果報告 EF錯誤,應該是 你的資料庫用的localDb, 要運作需要修改應用程式池(應用程式池- 進階設定——辨別)改為 localSystem

最後說明一下, 其實asp.net 5 運作的是 wwwroot\bin\下面的那一個AspNet.Loader.dll, 當應用程式啟動時,它使用 定義的 dnx-app-base 和 runtime-path 來載入dnx,然後dnx 來運作你的程式