越來越多的開發(fā)團隊開始使用64位操作系統(tǒng)作為開發(fā)環(huán)境,也計劃將應(yīng)用部署在安裝有64位操作系統(tǒng)的服務(wù)器上。對于ASP.Net開發(fā)者來說,使用64位環(huán)境開發(fā)部署需要注意以下幾個問題,可在項目過程中節(jié)省不少時間。
很多開發(fā)者在使用64位操作系統(tǒng)時,在ASP.Net應(yīng)用中使用了指定64位版本程序庫。例如一些專門的數(shù)據(jù)庫驅(qū)動、設(shè)備驅(qū)動,但依然出現(xiàn)以下錯誤提示信息:
1 | 未能加載文件或程序集“……”或它的某一個依賴項,試圖加載格式不正確的程序。 |
造成這種故障的原因是,大部分ASP.Net編譯器和容器并沒有默認(rèn)設(shè)置為64位,而是以32位兼容模式運行。此時,如果將程序庫更換為32位,則系統(tǒng)運行正常。若打算堅持使用64位程序集,可依據(jù)下文所述方法進(jìn)行設(shè)置。
在64位操作系統(tǒng)中,Visual Studio自帶的IIS Express是32位的。如果需要Visual Studio使用IIS Express調(diào)試使用64位程序集的ASP.Net應(yīng)用,應(yīng)使用64位版本的IIS Express。設(shè)置方法如下:
(1)關(guān)閉正在運行的IIS Express實例;
(2)單擊主菜單上的“工具”-“選項”命令,打開選項對話框;
(3)在選項對話框目錄樹中“項目和解決方案”-“Web項目”標(biāo)簽,勾選“對網(wǎng)站和項目使用IIS Express的64位版本”條目。
在Visual Studio發(fā)布ASP.Net項目時,如果設(shè)置了在發(fā)布期間預(yù)編譯功能,Visual Studio將調(diào)用ASP.Net編譯器對項目進(jìn)行編譯。
該編譯器默認(rèn)選擇的是32位編譯器,而Visual Studio未提供任何配置管理界面。更換64位編譯器的方法為:
(1)找到當(dāng)前發(fā)布Web的配置文件名稱,本例中的文件名稱為PublishConfig;
(2)在解決方案資源管理器的Properies目錄下,找到對應(yīng)的配置文件,打開進(jìn)行編輯;
(3)在該配置文件中添加下列語句:
1 | [Microsoft .Net Framework路徑]\ Framework64\[版本號] |
例如:
1 | C:\Windows\Microsoft.NET\Framework64\v4. 0.30319 |
注意:Visual Studio 2010以前的版本配置方法有所不同,暫時未找到對應(yīng)解決方案,可選擇不進(jìn)行預(yù)編譯。
IIS可以針對具體的ASP.Net應(yīng)用設(shè)置是否以64位環(huán)境運行,具體的操作方法如下:
(1)部署Web站點后,打開Internet 信息服務(wù)(IIS)管理器;
(2)在目錄中選擇應(yīng)用程序池,選擇目標(biāo)站點的應(yīng)用配置,通過右鍵菜單打開高級設(shè)置;
(3)將啟用32位應(yīng)用程序選項設(shè)置為False,應(yīng)用將以64位環(huán)境運行。
關(guān)于此問題,我查閱過一些文檔,同時也進(jìn)行了實驗。個人觀點如下:
(1)普通的ASP.Net項目無需進(jìn)行平臺的設(shè)置,平臺設(shè)置為x86和x64均不影響項目的編譯和發(fā)布,因此使用默認(rèn)的Any CPU平臺即可。
(2)對于使用了有環(huán)境限制程序集的項目,如系統(tǒng)驅(qū)動、數(shù)據(jù)庫驅(qū)動,最好是配置對應(yīng)平臺。在發(fā)布時環(huán)境異常,可以獲取更多有效的信息,節(jié)省調(diào)試時間。
諸多開發(fā)者都對微軟的文檔不滿,軟件工程師與律師的職業(yè)屬性不同,每日不可能有諸多時間消耗在翻閱類似于法典的MSDN文檔中。而我們希望的是能夠針對可能出現(xiàn)問題的頻率來組織開發(fā)資料,這樣開發(fā)者將少走很多彎路。
源: http://www.2cto.com/kf/201407/313919.html