ASP.NET MVC在IIS6下部署的小技巧

來源:互聯網
上載者:User

通常在IIS6下部署ASP.NET MVC應用程式的時候,都是直接設定把所有請求都交由ASP.NET的ISAPI處理。MVC是基於ASP.NET的,架構預設對於任何請求都會優先檢查實體路徑是否存在物理檔案,如果存在的話就不通過MVC的路由機制,否則才走路由。因此,如果在不考慮控制靜態資源許可權的情況下,可以設定靜態資源不通過ASP.NET的ISAPI,而直接由IIS處理,通過這種方式提升一些效能。本文圍繞這個主題,詳解部署過程。

0.在設計MVC網站的時候,把靜態資源統一放在一個檔案夾下,建議目錄結構使用小寫字母

1.把web應用程式發布到某個路徑下(略)(順便提一句,MVC2功能上比MVC3弱一些,用到的組件很少,可以直接私人部署System.Web.Mvc;但是MVC3因為功能增加,而且引入了Razor引擎,依賴的組件增多,建議在部署的時候直接安裝MVC3)

2.建立一個web網站(略)

3.右擊建立的web網站,選擇屬性,切換到Home Directory頁

4.點擊Configuration,在Wildcard application maps中,點擊Insert,添加C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,取消Verify that file existsg的勾選。(如果使用MVC2的話,可以到2.0下去找這個dll。這裡去掉對靜態檔案的驗證是關鍵,這使得asp.net處理所有的請求)

5.點OK

6.允許ASP.NET 4.0擴充

7.content目錄是靜態資源放置的目錄,設定content目錄下請求直接由IIS處理以提高效能。右擊content,屬性

8.點擊create,再點擊configuration,移除Wildcard application maps下的內容。點擊OK。這裡利用了IIS的一個bug,把目錄設定成虛擬目錄,刪除Wildcard application maps的設定,這樣這個虛擬目錄的請求就直接由IIS處理了。

9. 再點擊Remove,把虛擬目錄恢複成普通目錄。這樣只有這個目錄下的檔案會受到IIS的“眷顧”

10.設定AppPool許可權。點擊網站使用的AppPool的屬性,切換到Identity,選擇Local System。這是偷懶的設定方法,以避免出現應用程式本身對系統的存取權限不夠

11.設定匿名存取權限。右擊網站,選擇許可權。點擊Add…,在彈出的對話方塊中輸入IUSR_XXX(XXX為機器名)。

點擊OK,便可添加一個Internet Guest Account,保持預設的唯讀許可權即可。

12.最後注意,如果是首次安裝.NET 4.0,不要忘了註冊

在深入理解ASP.NET MVC(2)中,討論過MVC架構的路由機制,其中提到“可以通過設定RouteCollection的RouteExistingFilestrue,使得路由不匹配靜態檔案(注意true是不匹配,這個命名和奇怪)。”因此,我們可以這樣設定,以使得MVC不對靜態檔案進行檢查,這樣又可以提高一點效能。最終請求會像那樣被serve

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.