摘要:在沒有安裝ASP.NET MVC 3的web伺服器上運行一個ASP.NET MVC 3應用程式
[原文發表位置] Running an ASP.NET MVC 3 app on a web server that doesn』t have ASP.NET MVC 3 installed
[原文發表時間] January 18, 2011 10:33 PM
上周我們發佈了幾個新的Web產品——包括ASP.NET MVC 3。自那時起,我們就收到了很多很好的回饋,並且產品有大量下載。
一些用戶最近問到我的一個問題是:我的虛擬主機提供商還不支援ASP.NET MVC 3——能知道他們什麼時候會安裝嗎?
好消息是你無需等待他們在其web伺服器上安裝任何東西。只要你的虛擬主機提供商支援.NET 4,現在你就能在它上面構建和部署ASP.NET MVC 3應用程式——不需要虛擬主機提供商做任何準備工作。下面的文章講述如何實現。
一些背景
我們支援兩種方法來安裝和使用在機器上支援ASP.NET MVC 3的程式庫:
1. 將ASP.NET MVC 3程式庫裝在機器上的一個中心位置, 由web專案從那裡引用/使用。
2. 將ASP.NET MVC 3程式庫複製到你的web項目的\bin目錄下, 讓你的web專案從那裡引用/使用。
第一個方法是我們在Visual Studio中使用的預設方法, 有利於簡單通過windows更新維護ASP.NET MVC 3程式庫(在一個糟糕的缺陷事件中)。
第二種方法也是完全支持的, 並且好在不需要在機器上明確安裝ASP.NET MVC 3來使用它。相反的,你只需要複製或用 FTP 將你的web應用程式放到一個伺服器上(攜帶包含在應用程式的\bin目錄下所包含的ASP.NET MVC程式庫一起),它就可以使用了。如果你的虛擬主機提供商在伺服器上並沒有明確安裝ASP.NET MVC 3,你最好用這種方法。
方法一: 由 GAC 引用 ASP.NET MVC 程式庫
當你在一台機器上安裝ASP.NET MVC 3的時候,安裝過程中有一些程式庫會被自動註冊到GAC(global assembly cache)裡面。GAC提供一個安裝和維護(通過Windows更新).NET 程式庫的統一管理區域。因為它提供了一個很簡易的方法讓我們能更新並維護程式庫,預設情況下ASP.NET MVC 項目從那裡引用實現ASP.NET MVC的程式庫。
如果你拷貝一個參考未改變的ASP.NET MVC 3專案——它預設通過GAC引用ASP.NET MVC 3執行期程式庫——到一台沒有安裝ASP.NET MVC 3的機器上,你就會在執行你的應用程式的時候看到下面這樣的一個錯誤訊息:
上面的錯誤表示在執行ASP.NET MVC 3時所需要的一個程式庫在GAC中無法找到。 在機器上安裝ASP.NET MVC 3會修復這個問題,並讓你的應用程式得以執行。
方法二:由專案的 \bin 目錄引用 ASP.NET MVC 程式庫
你的專案可用的另外一種方法是從你的web應用程式的 \bin 位址下部署和引用ASP.NET MVC 3 執行期程式庫。這樣做的好處是你無需在機器上明確安裝ASP.NET MVC 3以執行你的web應用程式。 相反的你只需要複製或用 FTP 將你的web應用程式放到現有的.NET 4伺服器上,它就可以使用了。這種方法對「完全信任」和「中度信任」場景都很適用——這意味著它甚至能與低成本共享主機提供一起使用。主機提供商無需再做任何註冊、安裝、操作。
讓你的web專案透過「bin部署」ASP.NET MVC 3 程式庫非常容易,只需要大概短短的2分鐘。下面是所需的步驟:
將ASP.NET MVC 3應用程式通過\bin部署到一個虛擬主機提供商的步驟
一旦配置了基於\bin的部署,你用ASP.NET MVC 3構建的應用程式就可以在裝有.NET 4的任何web伺服器上執行了。 只需它複製或用 FTP 傳到web伺服器上即可。你無需再對虛擬主機提供商要求任何操作來實現——即使對低成本共享主機帳戶也是如此。
找到一個ASP.NET 虛擬主機提供商
你能瀏覽Windows Web Hosting Gallery來尋找合適的,支援ASP.NET的windows主機服務商(全部支援ASP.NET 4):
Windows Web Hosting Gallery允許你通過不同的國家和服務層級來篩選、瀏覽主機提供商。它還允許你很容易地透過「共享主機」,「虛擬主機」和「專用主機」來篩選。
「共享主機」指有很多客戶執行在單個web伺服器上的提供商,你沒有遠端登入伺服器的管理員權限。「虛擬主機」允許你將自己的虛擬機映像置於遠端伺服器上——通常包含作業系統的管理員權限和遠端桌面伺服器 (Terminal Service) 存取權限來管理它。「專用主機」服務商提供一台完整的實體伺服器, 通常還提供作業系統的管理員權限和遠端桌面支持。
基於Windows的web主機性價比 (C/P) 非常高,從低至每月$2.75的共享主機到每月$23的虛擬主機。以上所有的提供商都能透過\bin部署方法來運行ASP.NET MVC 3.
總結
你能將基於ASP.NET MVC 3的應用程式部署到任何有.NET 4的web伺服器上——無需等待虛擬主機服務商在伺服器上明確安裝ASP.NET MVC 3。 簡單地透過上面的步驟就可以將你的項目轉化為使用基於\bin部署的ASP.Net MVC 3程式庫, 然後你就能將你的應用程式複製到基於ASP.NET 4的伺服器上,就可以使用它了。
希望這些對您有所幫助。
Scott
附:除了寫部落格之外,我現在也用Twitter來即時更新狀態和分享連結。請關注我:twitter.com/scottgu