MVC IIS環境部署注意事項


環境:MVC3.0,IIS7

Mvc3.0的部署除像正常部署aspx程序一樣外,另外還需要注意的幾點:

1. 安裝MVC3.0

    確保服務器上安裝了MVC3.0,默認版本是“3.0.20105.0”

2. MVC版本一致性問題(重要)

此類問題會引起一堆譬如CS1705,CS0433類的問題,我就是碰到了這種問題,所以就這個問題詳細說明一下:

此問題需要查看你本機開發時用的mvc類庫版本與服務器上所安裝的mvc類庫版本是否一致,即使大版本號都是3.0,而小版本號不一致也會導致此類問題

MVC的版本號可通過控制面版上“Microsoft ASP.NET MVC 3”一行后面的版本來確定,我本機上的版本是“3.0.50813.0”,而服務器上的版本卻是“3.0.20105.0”,因此就出現了版本不一致的問題

默認安裝MVC3后的版本是“3.0.20105.0”,而版本“3.0.50813.0”是Microsoft針對MVC安全性發布的一個更新補丁包,如果你是剛裝的mvc,一般情況下“3.0.20105.0”,過段時間通過windows的自動更新可能就會變成“3.0.50813.0”,所以這個版本問題不容易被發現

針對MVC的安全補丁說明:MS14-059 (KB2990942)

補丁地址: http://www.microsoft.com/zh-CN/download/details.aspx?id=44533

此補丁是一個集合補丁,里面包含了對 MVC 2.0、MVC 3.0、MVC 4.0、MVC 5.0 和 MVC 5.1的補丁

如果只需針對MVC3.0打補丁,則只需通過選擇更新相應的補丁包即可,針對MVC3.0補丁包的名稱其實為:KB2993937

由此即可解決版本問題

其它網上總結的也需要注意的,我沒有碰到或者是有些配置本已集成了的:

1. 設置System.Web.Mvc.dll復制到本地(重要)

在VS的引用中右鍵System.Web.Mvc.dll,選擇“屬性”->“復制到本地”選擇true,重新編譯並發布

其實就是要帶着本機的System.Web.Mvc.dll發布

我沒有這么做,網站仍然可以訪問,不過這條應該很重要,建議發布mvc時選擇這項

2. 設置“ISAPI和CGI限制”

左鍵點擊IIS根結節,在右側的功能區選擇“ISAPI和CGI限制”,點開,將ASP.NET v4.0.30319設置為允許,如果是64位系統應該有兩條記錄,一條是64位的,一條是32位的,反正我的都是不允許也照樣可以

3. 檢查“處理程序映射”

檢查“處理程序映射”,看里面是不是有以下這三項:

ExtensionlessUrlHandler-Integrated-4.0

ExtensionlessUrlHandler-ISAPI-4.0_32bit

ExtensionlessUrlHandler-ISAPI-4.0_64bit

如果缺少請在命令行中運行:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

我的默認是有這三項的

4. 設置“處理程序映射”

左鍵點擊網站,在右側功能區選擇“處理程序映射”,點開,在右側點“添加通配符腳本映射”,添加如下內容:

請求路徑:*

可執行文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

名稱:可自己決定,一般填mvc3即可

我的這項也沒有設置,網站仍然可以使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM