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