自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

部署ASP.NET應(yīng)用程序

開(kāi)發(fā) 后端
本文介紹部署ASP.NET應(yīng)用程序,以及介紹安裝是指將應(yīng)用程序包裝成易于部署的形式,安裝好之后的應(yīng)用程序可以之間在目標(biāo)服務(wù)器上使用。

介紹部署ASP.NET應(yīng)用程序的基本原理之前,請(qǐng)理解安裝(Setup)和部署(Deployment)之間的區(qū)別。安裝是指將應(yīng)用程序包裝成易于部署的形式,安裝好之后的應(yīng)用程序可以之間在目標(biāo)服務(wù)器上使用。部署是一個(gè)獲得應(yīng)用程序并將它安裝到另一臺(tái)機(jī)器上的過(guò)程,在部署中您可能還需要做一些額外的配置。下面介紹在實(shí)際中如何用VS.NET完成應(yīng)用程序的部署,關(guān)于安裝就留給以后說(shuō)了。

1、用VS.NET的“復(fù)制項(xiàng)目”功能部署--源代碼方式,在VS.NET里,可以直接把源代碼拷貝到目標(biāo)服務(wù)器中,在解決方案資源管理器中,可以看到有一個(gè)“Copy Web Site”工具按鈕參考下圖:

CopyWebSite工具按鈕

單擊改按鈕后就可以在VS.NET中打開(kāi)Copy Web Site窗口,如下圖。

CopyWebSite窗口


整個(gè)內(nèi)部窗體大致分為兩個(gè)部分:Source Web site:現(xiàn)在本地Web應(yīng)用程序資源,Remote Web site顯示的是遠(yuǎn)程Web應(yīng)用程序資源(也就是你要上傳的目標(biāo)文件的位置)
但是你可能已經(jīng)看到,此時(shí)Remote Web site是灰色并不能夠使用,因此你還需要連接到遠(yuǎn)程服務(wù)器。

在 Copy Web Site工具欄目上,有一個(gè)Connect按鈕,單擊后出現(xiàn)連接選項(xiàng),如圖,這正是前面介紹的打開(kāi)Web的方式,稍微有點(diǎn)區(qū)別是此處你是部署ASP.NET應(yīng)用程序?,F(xiàn)在你可以使用你的網(wǎng)絡(luò)服務(wù)商給你的帳戶進(jìn)行遠(yuǎn)程登陸,圖中所示登陸的是局域網(wǎng)內(nèi)的web服務(wù)器,將要上傳的位置在www文件夾下。
一旦登陸成功就可以部署ASP.NET應(yīng)用程序,如圖,當(dāng)你選中文件后,就可以同步本地和遠(yuǎn)程服務(wù)器的文件,需要注意的是這里是“同步”而并不是簡(jiǎn)單的拷貝。這種好處是當(dāng)你在本地或者遠(yuǎn)程更高后,可以同步以后,兩邊的文件可以同步更新。

部署ASP.NET應(yīng)用程序

部署ASP.NET應(yīng)用程序


2、利用Public Web Site部署ASP.NET應(yīng)用程序――源代碼+二進(jìn)制
可以利用VS.NET提供的Public Web Site部署經(jīng)過(guò)預(yù)先編譯的應(yīng)用程序。這和ASP.NET1.1類似。要啟動(dòng)public web site,從VS.NET的Build菜單里選擇“Public Web Site”如圖,這將彈出Public Web Site 對(duì)話框,參考下圖

選擇PublicWebSite

彈出PublicWebSite


在該圖里,需要輸入遠(yuǎn)程服務(wù)器的地址,可以是HTTP,F(xiàn)TP等,這里我們以本機(jī)作為測(cè)試,輸入http://localhost,這將在當(dāng)前IIS的主目錄里建立MyFirstPage項(xiàng)目。在下面的復(fù)選框里,說(shuō)明如下:
◆Allow this precompiled site to be updatable:該選項(xiàng)允許*.aspx也沒(méi)并不編譯到匯報(bào)集里,也就是選中該選項(xiàng)后,你可以改變頁(yè)面的標(biāo)記。
◆Use fixed naming and single page assemblies:該選項(xiàng)運(yùn)行你預(yù)編譯特定的文件名稱的代碼。
◆Enable strong naming on precompiled assemblies:該選項(xiàng)要求生成重新命名的程序集。這里使用默認(rèn)值。然后單擊“OK”,經(jīng)過(guò)編譯后,你就可以在IIS的主目錄里找到這些預(yù)編譯的文件。
此時(shí)如果你打開(kāi)MyPage.aspx,代碼如下:

  1. <%@pagelanguage="C#"autoeventwireup="true"inherits="MyPage,App_Web_jmvb-kmt"%> 
  2.  
  3. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    > 
  4.  
  5. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  6. <headrunatheadrunat="server"> 
  7. <title>UntitledPage</title> 
  8. </head> 
  9. <body> 
  10. <formidformid="form1"runat="server"> 
  11. <div> 
  12. Enteryourname:<asp:TextBoxIDasp:TextBoxID="nameTextBox"runat="server"/><br/> 
  13. <asp:ButtonIDasp:ButtonID="enterButton"runat="server"  
  14. Text="Enter"OnClick="enterButton_Click"/>&nbsp;<br/> 
  15. <asp:LabelIDasp:LabelID="messageLabel"runat="server"Text="Label"></asp:Label> 
  16. </div> 
  17. </form> 
  18. </body> 
  19. </html> 

正如前面所說(shuō)的,由于Page指令是< %@ page language="C#" autoeventwireup="true" inherits="MyPage, App_Web_jmvb-kmt" %>并不包含CodeFile,所以這種編譯方式和ASP.NET1.1兼容。
Page指令的inherits指出了MyPage.aspx的類集為MyPage和匯編集App_Web_jmvb-kmt。換句話說(shuō),當(dāng)系統(tǒng)加載 Page也沒(méi)時(shí),將會(huì)到bin文件夾下的App_Web_jmvb-kmt.dll加載MyPage類作為MyPage.aspx后臺(tái)文件的頁(yè)面類。

3、利用Aspnet_compiler.exe部署應(yīng)用程序
Aspnet_compiler.exe是ASP.NET2.0新增加的一個(gè)命令,所以對(duì)以前版本的.NET框架不可用,你可以在安裝目錄下找到該文件,例如c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目錄學(xué)。

Aspnet_compiler.exe提供了很多參數(shù),你可以在命令行輸入 Aspnet_compiler.exe /?查看這些參數(shù)的意義。這里我們這種介紹查用的幾個(gè)參數(shù):

1、- m m參數(shù)告訴系統(tǒng)使用IIS的元數(shù)據(jù)配置應(yīng)用程序,例如下面的命令
aspnet_compiler -m /LM/W3SVC/1/Root/MyApp c:\MyTarget
/LM /W3SVC/1/Root表示的是/LM/W3SVC/下是我們要用到的HTTP服務(wù)的配置信息,在“控制面板”里有一個(gè)"Server Extensions管理器"。你可以打開(kāi)開(kāi)你本機(jī)的配置。在這個(gè)命令里,它表示當(dāng)前的應(yīng)用程序是MyApp,該應(yīng)用程序?qū)τ玫奈募锢砺窂绞?c:\MyTarget

2 -vv表示應(yīng)用程序的虛擬路徑。如果同時(shí)和-p參數(shù)結(jié)合使用,則由 -p參數(shù)指出物理路徑,否則則使用IIS的元素?cái)?shù)據(jù)配置,默認(rèn)是應(yīng)用程序的當(dāng)前站點(diǎn)。
下面的命令和上面的登記。
aspnet_compiler -v /MyApp

而下面則不依靠IIS的配置,因?yàn)樗@示聲明應(yīng)用程序的物理路徑
aspnet_compiler -v /MyApp -p c:\myapp c:\MyTarget
 
-u
v virtualPath –應(yīng)用程序的虛擬路徑
-p physicalPath – 應(yīng)用程序的事件位置

targetDirectory – 目標(biāo)位置

另外還有一個(gè)參數(shù):u,這個(gè)參數(shù)告訴編譯器保留*.aspx頁(yè)面,以便將來(lái)更新,這中情況就是上面介紹的的“匯編集+二進(jìn)制”代碼的形式
下面我們將介紹如何使用該命令,并進(jìn)一步介紹ASP.NET1.1到ASP.NET2.0在部署的變更。
下面的代碼說(shuō)明如何利用aspnet_compilier部署ASP.NET應(yīng)用程序,該部署針對(duì)的是如下一種情況:
我利用VS.NET2005內(nèi)置的服務(wù)器并使用File System方式在我的文檔 C:\Documents and Settings\liwanbao\My Documents\Visual Studio 2005\WebSites下建立了MyFirstPage項(xiàng)目。
現(xiàn)在我要把該程序部署到本地IIS的服務(wù)器商,在IIS服務(wù)器中,我的應(yīng)用程序名稱是DeplayApp,該應(yīng)用程序指向的實(shí)際路徑是D:\DeplayMyFirstPage,所以,如果你打開(kāi)IIS,看到的應(yīng)該類似如下效果

應(yīng)用程序

這里其實(shí)就使用了上面介紹aspnet_compiler.exe常用的三個(gè)參數(shù)

DeplayApp是應(yīng)用程序虛擬路徑,也就是上面-v參數(shù)制定的路徑

D:\DeplayMyFirstPage是虛擬路徑對(duì)應(yīng)的實(shí)際物理路徑,也就是將要我要部署到位置的目標(biāo)路徑

C:\Documents and Settings\liwanbao\My Documents\Visual Studio 2005\WebSites路徑是我開(kāi)發(fā)項(xiàng)目源代碼的位置。

在上圖的命令里,首先設(shè)置了 Path路徑指向aspnet_compiler.exe以防止系統(tǒng)找不到該命令,具體指向的命令是
aspnet_compiler –v /DeplyApp-p MyFirstPage d:\DeplayMyFirstPage

這將在D:\DeplayMyFirstPage目錄學(xué)生成所需的文件(*.aspx),在App_Data目錄學(xué)可以找到應(yīng)用程序的數(shù)據(jù)庫(kù)文件,需要注意的是在數(shù)據(jù)庫(kù)引用時(shí),應(yīng)用的是App_Data文件的當(dāng)前位置,例如數(shù)據(jù)庫(kù)連接為

  1. <add name="DotNetEntry_DataConnectionString1" connectionString="Data Source=.\
    SQLEXPRESS;
    AttachDbFilename=|DataDirectory|\DotNetEntry_Data.MDF;…  /> 

此時(shí)部署時(shí),系統(tǒng)自動(dòng)將項(xiàng)目App_Data下的數(shù)據(jù)庫(kù)部署到目的的,而如果將上面代碼改為:

  1. <add name="DotNetEntry_DataConnectionString1" connectionString="Data Source=.\
    SQLEXPRESS;
    AttachDbFilename=C:\DotNetEntry_Data.MDF;…  /> 

由于制定了DotNetEntry_Data.MDF的絕對(duì)位置,所以目的文件并不保護(hù)App_Data文件bin文件夾存放的是經(jīng)過(guò)編譯后的DLL文件,同時(shí)還包含對(duì)程序集的引用,例如用記事本打開(kāi)default.aspx.cdcab7d2.compiled,類似代碼如下:

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <preserveresultTypepreserveresultType="3"virtualPath="/DeplayApp/Default.
    aspx"
    hash="fffffff5007efec4"filehash="6c5c681005a7e96b"flags="110000"
    assembly="App_Web_r8n0o27x"type="ASP.default_aspx"> 
  3. <filedeps> 
  4. <filedepnamefiledepname="/DeplayApp/Default.aspx"/> 
  5. <filedepnamefiledepname="/DeplayApp/Default.aspx.cs"/> 
  6. </filedeps> 
  7. </preserve> 

如果打開(kāi)*.aspx頁(yè)面可以看到頁(yè)面的內(nèi)容都是This is a marker file generated by the precompilation tool, and should not be deleted!

可能你會(huì)問(wèn)既然全部是DLL文件為什么還要*.aspx文件呢?這些文件也沒(méi)有具體內(nèi)容,會(huì)不會(huì)是多余的?要理解這個(gè)問(wèn)題就需要轉(zhuǎn)到IIS了,換句話說(shuō)這就不再是ASP.NET2.0的工作范疇了。對(duì)于客戶端請(qǐng)求,IIS首先會(huì)根據(jù)映射檢查您所請(qǐng)求的文件存在不存在,如果不存在就直接提示您所請(qǐng)求的文件沒(méi)有找到。以上介紹部署ASP.NET應(yīng)用程序。

【編輯推薦】

  1. ASP.NET開(kāi)發(fā)技巧之Theme功能淺析
  2. 詳解ASP.NET動(dòng)態(tài)編譯
  3. Apache支持ASP.NET方法淺析
  4. 淺談ASP.NET服務(wù)器標(biāo)準(zhǔn)控件
  5. ASP.NET中SQL Server數(shù)據(jù)庫(kù)備份恢復(fù)淺析
責(zé)任編輯:佚名 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2009-12-10 15:35:10

ASP.Net 2.0

2009-07-21 15:02:19

ASP.NET應(yīng)用程序

2009-07-23 13:26:21

2009-07-22 17:32:40

ASP.NET應(yīng)用程序

2009-07-20 16:08:04

ASP.NET應(yīng)用程序

2009-07-27 16:09:50

2009-07-29 17:01:13

2009-07-29 10:30:53

Web應(yīng)用程序ASP.NET

2009-07-23 14:25:03

ASP.NET 2.0

2009-07-29 17:21:10

2009-07-20 16:03:14

ASP.NET 2.0

2009-07-24 11:25:53

Web應(yīng)用程序工程ASP.NET MVC

2009-07-22 18:07:55

論壇應(yīng)用程序ASP.NET MVC

2009-07-27 17:46:42

WCF服務(wù)ASP.NET應(yīng)用程序

2009-07-22 18:02:27

論壇應(yīng)用程序ASP.NET MVC

2009-07-21 15:23:55

預(yù)編譯Web應(yīng)用程序ASP.NET

2009-07-28 10:11:06

ASP.NET應(yīng)用程序

2009-07-24 10:41:00

ASP.NET Web

2009-08-04 11:46:09

2009-07-21 15:14:32

預(yù)編譯應(yīng)用程序ASP.NET
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)