2017年8月5日 星期六

【MVC】在IIS7.5中設定環境給MVC用

只是將ASP.NET WebForm發布到IIS時還挺順利的
我只有在設定讓區網內的其他電腦可以連到虛擬機中的IIS卡過,而且這問題主因在不熟VMWare,而不是IIS
但MVC光是這IIS這邊就麻煩不少了

測試環境: win7 pro & IIS 7.5
測試網站: 微軟提供的教學範本



前面的起手式與傳統網站相同,都是要開啟Windows功能 (IIS因為安全性關係,預設關閉)


1. 開啟「控制台」找到「開啟或關閉Windows 功能」,參考下圖將功能開啟
  • Web 管理工具 -> IIS管理主控台 (非必要,但強烈建議裝)
  • www服務 -> 應用程式開發功能 -> ASP.NET (必要)
  • www服務 -> 應用程式開發功能 -> ISAPI 篩選器 (必要)
  • www服務 -> 應用程式開發功能 -> ISAPI 擴充程式 (必要)



2. (不見得需要做)如果IIS比.NET Framework後裝,就要接著開啟cmd執行註冊(依OS選擇註冊方式),讓他跑一下(數秒而已)

  • OS為32bit「C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe -i」
  • OS為64bit「C:/Windows/Microsoft.NET/Framework64/v4.0.30319/aspnet_regiis.exe -i」
(大部分的開發環境可能都是後裝,除非一開始就確定要當AP Server)

3. 然後就能在「開始」輸入「IIS」把主控台叫出來
 



如果是WebForm,到這裡就可以開始Publish網頁跟指定路徑了,但是佈署mvc比普通網站更麻煩,所以從這裡開始要多設定一些!

4. 開啟「ISAPI及CGI限制」的功能視窗
 


4.1 然後將「限制」改為「允許」 (最低限度是啟動第三列的64bit就能執行了。)
 


5. 然後就可以Publish專案啦,方法可以參考這影片,這裡不細說。畢竟都要設定IIS了,應該... 不會不知道怎麼publish基本款的網站吧?
https://www.youtube.com/watch?v=FzwcD_XQ4ko


6. 回到IIS主控台,對「站台」右鍵 -> 點「新增網站」 然後參考下面設定

圖片太小的話,可以開新分頁去看
※應用程式集區就是「步驟4.1中『允許』的那個程式集區

※我偏好使用不同的連接port去設定網站,這樣就不用記一堆IP,但是注意要那條port有沒有被防火牆鎖起來就是了
 

7. 如果是VS預設的MVC範本,到此就可以執行了
用「瀏覽」或者直接在瀏覽器輸入網址



參考來源:iis部署asp.net mvc網站出錯的解決方法 




如果網站有使用到編譯為32bit的DLL,就還要多設定一小段

Extra 1. 看是哪個站台有需要用到32bit的DLL,對它指定的「應用程式集區」右鍵→點「進階設定



Extra 2. 將「啟用32位元應用程式」設定為True就可以了。
當然也能為了它新增個別的程式集區,但是這步一定要做!


Extra 3. 保險起見,將網站停止後,再啟動吧。

參考來源:在Windows7 x64的IIS使用32bit的odbc driver