基于.NET Framework 4.0的解决方案部署
VS 2010發(fā)布之后,隨著而來的框架版本也升級(jí)到了.NET Framework 4.0。我相信很多朋友已經(jīng)在用了吧。這一篇文章總結(jié)了如何基于.NET Framework 4.0,進(jìn)行解決方案部署。
之所以要單獨(dú)寫一下,是因?yàn)榇_實(shí)這個(gè)版本與之前的.NET Framework 2.0,3.0,3.5是不一樣的。我們自己在用的時(shí)候也摸索了一些時(shí)間。所以總結(jié)出來給大家參考參考吧,以免多走彎路。
?
重點(diǎn)事項(xiàng):
?
部署提示:
1.首先下載有關(guān)的安裝程序
NET_Framework_4.0installer.rar
這是我整理好的四個(gè)軟件(大致一共10MB),分別如下
- WindowsInstaller-KB893803-v2-x86(3.1).exe? 如果你的機(jī)器(不管是服務(wù)器還是客戶端)什么都沒有安裝過,那么必須先裝這個(gè)installer 3.1才可以安裝Framework
- wic_x86_enu.exe 如果你的機(jī)器是XP(通常是指客戶端),那么在安裝.NET Framework 4之前需要安裝這個(gè)WIC(Windows Image Component),不要問我這是干啥用的,我也不知道,呵呵
- ReportViewer2010.exe 如果你的應(yīng)用程序使用了報(bào)表查看器,則需要安裝這個(gè)
- en_.net_framework_4_full_web_installer_x86_x64_ia64_516530.exe? 這是在線安裝.NET Framework 4的一個(gè)引導(dǎo)程序。你需要確保網(wǎng)絡(luò)暢通。
當(dāng)然,如果你希望預(yù)先下載好Framework 安裝包(例如你的客戶場(chǎng)景是沒有辦法連接到網(wǎng)絡(luò)),那么請(qǐng)繼續(xù)下面的操作
- 如果你想要下載完整的安裝包,則訪問這里http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=en
- 大致是48MB的安裝包,應(yīng)該還是可以接受的。不像原先.NET Framework 3.5那么恐怖(那時(shí)好像將近200MB,客戶直接就崩潰了)
- 如果你想要下載.NET Framework 4 Client Profile ,則訪問這里 http://www.microsoft.com/downloads/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&displaylang=en
- 大致是41MB的安裝包,與Full相差大致7MB,我個(gè)人覺得這就沒有啥優(yōu)勢(shì)了。而且選用了Client Profile的話,有好些個(gè)功能都不能用。其實(shí)更關(guān)鍵在于你不知道哪些能用,哪些不能用(確實(shí)有一些文檔介紹他們的區(qū)別,但誰有那閑工夫去記住那么多區(qū)別呢)。所以,我們?nèi)坎捎肍ull,免得麻煩。
?
2.服務(wù)器端的一般部署過程
客戶端部署相對(duì)很簡(jiǎn)單,你只要把上面的一些軟件安裝好,基本上就不會(huì)有什么問題,程序能運(yùn)行起來。但服務(wù)器端可就沒有這么容易了。下面就假設(shè)你有一個(gè)Web Application需要部署
?
首先,如何打包這個(gè)Web Application呢?這個(gè)方面,VS2010做了一些不錯(cuò)的改進(jìn),它可以直接發(fā)布,更可以打包成一個(gè)所謂的Package,如下面的菜單
打包好之后會(huì)在項(xiàng)目的Obj目錄下面,Debug目錄下面,再創(chuàng)建一個(gè)Package目錄,你可以看到下面的一些文件
?
其次,如何在服務(wù)器端部署這個(gè)Web Application呢?
你需要將上面這個(gè)Package目錄全部復(fù)制,然后發(fā)送給服務(wù)器管理員。那么服務(wù)器管理員要怎么將這個(gè)Application部署起來呢?他有幾種方式。
第一種方式,使用MS Deploy工具。
http://www.iis.net/download/webdeploy
這個(gè)工具是微軟提供出來給IIS 6和IIS 7用的,可以很方便地進(jìn)行應(yīng)用程序部署。你可以通過上面的地址下載到。(值得一提的是,這個(gè)工具安裝之前需要當(dāng)前服務(wù)器安裝了.NET Framework 2.0 sp1)
如果安裝好了,我們打開IIS 之后會(huì)看到一些小的變化
大家可以看到,現(xiàn)在網(wǎng)站上面多出來一個(gè)“Deploy”的菜單,里面有幾個(gè)菜單項(xiàng),我們現(xiàn)在可以點(diǎn)擊“Import Application”
首先,我們需要指定那個(gè)部署包的位置,是那個(gè)zip文件
【注意】這里可以修改連接字符串
【注意】因?yàn)闄z測(cè)到我們是.NET Framework 4的Web Application,所以會(huì)提示將Application Pool選擇為.NET 4.0的,我們當(dāng)然毫不猶豫地點(diǎn)擊“yes”
很快就安裝好了。它到底做了什么呢?其實(shí)它會(huì)把文件復(fù)制到wwwroot里面來
但是,這里需要注意的是,它是隨機(jī)選擇了一個(gè).NET Framework 4.0 的Application Pool, 例如在我的機(jī)器上是這樣的
有的時(shí)候,我們可能會(huì)發(fā)現(xiàn)程序運(yùn)行不起來,例如
經(jīng)驗(yàn)告訴我們,凡是503錯(cuò)誤,多半是與應(yīng)用程序池有關(guān)系。
我嘗試重啟這個(gè)程序池,問題依舊
然后,我發(fā)現(xiàn)這個(gè)程序池有些特殊之處在于它的Managed Pipleline Mode是Integrated,是不是這個(gè)有問題呢?
我嘗試選擇了一個(gè)Managed Pipleline Mode為Classic的應(yīng)用程序池,例如
重新刷新一下就可以正常運(yùn)行我的應(yīng)用程序了
到這里,我們就完成了服務(wù)器端應(yīng)用程序的部署。這個(gè)演練中,我們使用了MS Deploy工具。但事實(shí)上,不用工具也是一模一樣可以做到的。只要記住下面兩點(diǎn)
1. 應(yīng)用程序池要基于.NET Framework 4
2. 應(yīng)用程序池的Managed Pipleline Mode要選擇為Classic
?
最后,還有一個(gè)可能會(huì)遇到的問題,就是如果你的應(yīng)用程序會(huì)連接到數(shù)據(jù)庫,而且數(shù)據(jù)庫連接字符串是像下面這樣寫的
Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True
那么,大家要知道的一個(gè)情況是,因?yàn)槟闶荌ntegrated security=true,所以最后訪問數(shù)據(jù)庫時(shí)所使用的身份是應(yīng)用程序池的標(biāo)識(shí)。那么,很顯然地,你需要確保這個(gè)標(biāo)識(shí)有訪問數(shù)據(jù)庫的權(quán)限。
【注意】如果是訪問本地的服務(wù)器和數(shù)據(jù)庫,為簡(jiǎn)單起見,你可以直接設(shè)置為L(zhǎng)ocalSystem。這個(gè)特殊帳號(hào)是肯定可以訪問數(shù)據(jù)庫的。
當(dāng)然,更加嚴(yán)謹(jǐn)?shù)淖龇?#xff0c;是指定一個(gè)特定的帳號(hào),這個(gè)帳號(hào)被授予了特定數(shù)據(jù)庫的訪問權(quán)限。
總結(jié)
以上是生活随笔為你收集整理的基于.NET Framework 4.0的解决方案部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国电信:全业务IP网络的安全运营
- 下一篇: ASP.NET夜话之21:asp.net