aspnet上傳文件到伺服器
A. 關於asp.net 的幾個名詞解釋,求助。。
1.Request對象
作用是與客戶端交互,收集客戶端的Form、Cookies、超鏈接,或者收集伺服器端的環境變數。
request對象是從客戶端向伺服器發出請求,包括用戶提交的信息以及客戶端的一些信息。客戶端可通過HTML表單或在網頁地址後面提供參數的方法提交數據,然後通過request對象的相關方法來獲取這些數據。request的各種方法主要用來處理客戶端瀏覽器提交的請求中的各項參數和選項。
Request對象的語法如下:
Request[.collectionlpropertylmethod](variable)
collection集合
clientcertificate 得到在HTTP請求中傳遞在客戶端認證域的值
cookies 使用此集合,可得到cookies值
form 得到form對象中元素的值
querystring 得到變數的值
servervariables 得到預置的環境變數的值
property屬性
totalbytes (只讀)指定從客戶端傳遞總位元組數
buffer 表明頁面輸出是否有緩沖
cachecontrol 決定代理伺服器是否能夠對asp的輸出進行快取
property屬性
charset 字元集
contenttype 指定response的HTTP內容類型
expires 定義一個瀏覽器緩存中的頁面在多長時間後過期
expiresabsolute 定義一個瀏覽器緩存中的頁面什麼日期時間後過期
isclientconnected 用戶是否連接到伺服器
pics 設置pics-label response標題的值,標示pics內容等級
status 由伺服器返回的狀態行
說明:
1、其中collection表示集合,它和數組很類似,是由若干元素組成的集合。不過數組一般只能用索引(下標)來引用每一個元素,而集合不僅可以用索引來引用每一個元素的值,還可以用元素的名稱來引用,如Request.Form("txtA")。事實上,後者是常用的方法。
2、variable又稱參數,它就是要獲取的元素的名稱,可以是字元串常量或字元串變數。例如,對表單信息來說,variable就是每一個表單元素的名稱。
3、「【」和「】」之間的參數可以省略,如Request("txtA")。此時因為沒有指定集合,所以ASP將會依次在QueryString、Form、Cookies、ServerVariables、ClientCertificate這5種集合中檢查是否有信息傳入。如果有信息傳入,則會返回獲取的信息。
4、請注意上面的第二個例子,其中前面的strB是定義的一個變數名稱,而後面的strB則是集合中一個元素的名稱,兩者不是一回事。
method方法
binaryread 得到從客戶端傳給伺服器端的數據
1.Request對象是ASP中常用的對象,用於獲取客戶端的信息,可以使用Request對象訪問任何基於HTTP請求傳遞的所有信息。通過Request對象能夠獲得客戶端發送給伺服器的信息,不能將伺服器端的數據發送給客戶端的瀏覽器。Request對象的屬性TotalBytes的功能是取得客戶端響應數據位元組大小。Request對象的方法BinaryRead的功能是以二進制方式讀取客戶端post的數據。
request對象有五個集合,下面予以介紹:
QueryString
:用以獲取客戶端附在url地址後的查詢字元串中的信息。
例如:stra=Request.QueryString ["strUserld"]
Form
:用以獲取客戶端在FORM表單中所輸入的信息。(表單的method屬性值需要為POST)
例如:stra=Request.Form["strUserld"]
Cookies
:用以獲取客戶端的Cookie信息。
例如:stra=Request.Cookies["strUserld"]
ServerVariables
:用以獲取客戶端發出的HTTP請求信息中的頭信息及伺服器端環境變數信息。
例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客戶端IP地址
ClientCertificate
:用以獲取客戶端的身份驗證信息
例如:stra=Request.ClientCertificate["VALIDFORM"],對於要求安全驗證的網站,返回有效起始日期。
2session對象
用於存儲特定的用戶會話所需的信息 。 Session對象的引入是為了彌補HTTP協議的不足,HTTP協議是一種無狀態的協議。
Session中文是「會話」的意思,在ASP中代表了伺服器與客戶端之間的「會話」。Session的作用時間從用戶到達某個特定的Web頁開始,到該用戶離開Web站點,或在程序中利用代碼終止某個Session結束。引用Session 則可以讓一個用戶訪問多個頁面之間的切換也會保留該用戶的信息。
系統為每個訪問者都設立一個獨立的Session對象,用以存儲Session變數,並且各個訪問者的Session對象互不幹擾。
Session與Cookie是緊密相關的。 Session的使用要求用戶瀏覽器必須支持Cookie,如果瀏覽器不支持使用Cookie,或者設置為禁用Cookie,那麼將不能使用Session。
Session信息對客戶來說,不同的用戶用不同的Session信息來記錄。當用戶啟用Session時,ASP自動產生一個SessionID.在新會話開始時,伺服器將SessionID當做cookie存儲在用戶的瀏覽器中。
session語法:
session.集合∣屬性∣方法
舉例:
<html>
<head>
<title>學好session加油</title>
</head>
<body>
<%
session("greeting")="ASP「
Response.write(session("greeting"))
%>
</body>
</html>
Session對象的集合、屬性、方法、事件
名稱 描述
Contents集合 包含所有通過腳本命令添加到應用程序中的數據項
SessionID屬性 用來標識每一個Session對象
TimeOut屬性 用來設置Session會話的超時時間(以分鍾表示)
Abandon方法 強行刪除當前會話的Session對象,釋放系統資源
Session_OnStart事件 建立Session對象時所激發的事件
Session_OnEnd事件 結束Session對象時所激發的事件
StaticObjects集合 包含所有通過<OBJECT>標記添加到應用程序中的對象
3
CompareValidator 控制項用於將由用戶輸入到輸入控制項的值與輸入到其他輸入控制項的值或常數值進行比較。
注釋:如果輸入控制項為空,則不會調用任何驗證函數,並且驗證將成功。使用 RequiredFieldValidator 控制項使欄位成為必選欄位。
屬性
屬性 描述
BackColor CompareValidator 控制項的背景顏色。
ControlToCompare 要與所驗證的輸入控制項進行比較的輸入控制項。
ControlToValidate 要驗證的輸入控制項的 ID。
Display 驗證控制項中錯誤信息的顯示行為。
合法值是:
None 驗證消息從不內聯顯示。
Static 在頁面布局中分配用於顯示驗證消息的空間。
Dynamic 如果驗證失敗,將用於顯示驗證消息的空間動態添加到頁面。
EnableClientScript 布爾值,規定是否啟用客戶端驗證。
Enabled 布爾值,規定是否啟用驗證控制項。
ErrorMessage 當驗證失敗時在 ValidationSummary 控制項中顯示的文本。
注釋:如果未設置 Text 屬性,此文本將顯示在驗證控制項中。
ForeColor 控制項的前景顏色。
id 控制項的唯一 ID。
IsValid 布爾值,指示由 ControlToValidate 指定的輸入控制項是否通過驗證。
Operator 要執行的比較操作的類型。
運算符是:
Equal
GreaterThan
GreaterThanEqual
LessThan
LessThanEqual
NotEqual
DataTypeCheck
runat 規定控制項是伺服器控制項。必須設置為 "server"。
Text 當驗證失敗時顯示的消息。
Type 規定要對比的值的數據類型。
類型有:
Currency
Date
Double
Integer
String
ValueToCompare 一個常數值,該值要與由用戶輸入到所驗證的輸入控制項中的值進行比較。
實例
CompareValidator
在此例中,我們在 .aspx 文件中聲明了兩個 TextBox 控制項,一個 Button 控制項,以及一個 CompareValidator 控制項。如果驗證失敗,將在 CompareValidator 控制項中使用黃色背景紅色文本顯示 "Validation Failed!"。
CompareValidator 2
在此例中,我們在 .aspx 文件中聲明了兩個 TextBox,一個 ListBox 控制項,一個 Button 控制項,以及一個 CompareValidator 控制項。check_operator() 函數把 ListBox 控制項中選取的運算符設置為 CompareValidator 控制項的運算符,然後對 CompareValidator 控制項進行驗證。如果驗證失敗,將在 CompareValidator 控制項中使用黃色背景和紅色文本顯示 "Validation Failed!"。
4.FileUpload控制項
FileUpload 控制項顯示一個文本框控制項和一個瀏覽按鈕,使用戶可以選擇客戶端上的文件並將它上載到 Web 伺服器。用戶通過在控制項的文本框中輸入本地計算機上文件的完整路徑(例如,C:\MyFiles\TestFile.txt)來指定要上載的文件。用戶也可以通過單擊「瀏覽」按鈕,然後在「選擇文件」對話框中定位文件來選擇文件。
用戶選擇要上載的文件後,FileUpload 控制項不會自動將該文件保存到伺服器。您必須顯式提供一個控制項或機制,使用戶能提交指定的文件。例如,可以提供一個按鈕,用戶單擊它即可上載文件。為保存指定文件所寫的代碼應調用 SaveAs 方法,該方法將文件內容保存到伺服器上的指定路徑。通常,在引發回發到伺服器的事件的事件處理方法中調用 SaveAs 方法。
在文件上傳的過程中,文件數據作為頁面請求的一部分,上傳並緩存到伺服器的內存中,然後再寫入伺服器的物理硬碟中。
有三個方面需要注意:
1.確認是否包含文件
在調用 SaveAs 方法將文件保存到伺服器之前,使用 HasFile 屬性來驗證 FileUpload 控制項確實包含文件。若 HasFile 返回 true,則調用 SaveAs 方法。如果它返回 false,則向用戶顯示消息,指示控制項不包含文件。不要通過檢查PostedFile 屬性來確定要上載的文件是否存在,因為默認情況下該屬性包含 0 位元組。因此,即使 FileUpload 控制項為空,PostedFile 屬性仍返回一個非空值。
2.文件上傳大小限制
默認情況下,上傳文件大小限制為 4096 KB (4 MB)。可以通過設置 httpRuntime 元素的 maxRequestLength 屬性來允許上載更大的文件。若要增加整個應用程序所允許的最大文件大小,請設置 Web.config 文件中的 maxRequestLength 屬性。若要增加指定頁所允許的最大文件大小,請設置 Web.config 中 location 元素內的 maxRequestLength 屬性。
上載較大文件時,用戶也可能接收到以下錯誤信息:
aspnet_wp.exe (PID: 1520) was recycled because memory consumption exceeded 460 MB (60 percent of available RAM).
以上信息說明,上傳文件的大小不能超過伺服器內存大小的60%。這里的60%是Web。config文件的默認配置,是<processModel>配置節中的 memoryLimit 屬性默認值。雖然可以修改,但是如果上傳文件越大,成功幾率越小,不建議使用。
3.上傳文件夾的寫入許可權
應用程序可以通過兩種方式獲得寫訪問許可權。您可以將要保存上載文件的目錄的寫訪問許可權顯式授予運行應用程序所使用的帳戶。您也可以提高為 ASP.NET 應用程序授予的信任級別。若要使應用程序獲得執行目錄的寫訪問許可權,必須將 AspNetHostingPermission 對象授予應用程序並將其信任級別設置為 AspNetHostingPermissionLevel.Medium 值。提高信任級別可提高應用程序對伺服器資源的訪問許可權。請注意,該方法並不安全,因為如果懷有惡意的用戶控制了應用程序,他(她)也能以更高的信任級別運行應用程序。最好的做法就是在僅具有運行該應用程序所需的最低特權的用戶上下文中運行 ASP.NET 應用程序。
FileUpload控制項的常用屬性:
屬性
數據類型
說明
FileBytes
byte[]
獲取上傳文件的位元組數組
FileContent
Stream
獲取指定上傳文件的Stream對象
FileName
String
獲取上傳文件在客戶端的文件名稱
HasFile
Bool
獲取一個布爾值,用於表示FileUpload控制項是否已經包含一個文件
PostedFile
HttpPostedFile
獲取一個與上傳文件相關的HttpPostedFile對象,使用該對象可以獲取上傳文件的相關屬性
可以通過3種方法訪問上傳文件:
1.通過FileBytes屬性。該屬性將上傳文件數據置於位元組數組中,遍歷該數組,則能夠以位元組方式了解上傳文件的內容。
2.通過FileContent屬性。調用該屬性可以獲得一個指向上傳文件的Stream對象。可以使用該屬性讀取上傳文件數據,並使用FileBytes屬性顯示文件內容。
3.通過PostedFile屬性。調用該屬性可以獲得一個與上傳文件相關的HttpPostedFile對象,使用該對象可以獲得與上傳文件相關的信息。例如,調用HttpPostedFile對象的ContentLength,可以獲得上傳文件大小;調用HttpPostedFile對象的ContentType屬性,可以獲得上傳文件的類型;調用HttpPostedFile對象的FileName屬性,可以獲得上傳文件在客戶端的完整路徑(調用FileUpload控制項的FileName屬性,僅能獲得文件名)。
5.DataAdapter
表示一組 SQL 命令和一個資料庫連接,它們用於填充 DataSet和更新數據源。 命名空間:System.Data.Common
程序集:System.Data(在 system.data.dll 中)
語法 public class DataAdapter : Component, IDataAdapter
DataAdapter 用作 DataSet 和數據源之間的橋接器以便檢索和保存數據。DataAdapter 通過映射Fill(這更改了 DataSet 中的數據以便與數據源中的數據相匹配)和Update(這更改了數據源中的數據以便與 DataSet 中的數據相匹配)來提供這一橋接器。
如果所連接的是 SQL Server 資料庫,則可以通過將SqlDataAdapter與關聯的SqlCommand和SqlConnection對象一起使用,從而提高總體性能。對於支持 OLE DB 的數據源,請使用 DataAdapter 及其關聯的OleDbCommand和 OleDbConnection 對象。對於支持 ODBC 的數據源,請使用 DataAdapter 及其關聯的OdbcCommand和OdbcConnection對象。對於 Oracle 資料庫,請使用 DataAdapter 及其關聯的OracleCommand和OracleConnection對象。
當創建 DataAdapter 的實例時,讀/寫屬性將被設置為初始值。有關這些值的列表,請參見 DataAdapter 構造函數
這些都出自網路。其實我也不懂。能幫一點幫一點吧。
B. 網站如何怎麼發布
前段時間在區域網上發布了一個自己做的網站,發布過程中遇到了不少問題。下面就發布過程和發布過程中遇到的問題與(你)大家一起分享一下,希望孝御森對(你)大家有所幫助吧!在將ASP.NET網站發布到伺服器之前需要先完成以下步驟:
1、在伺服器中創建用於存放所有網站文件的虛擬目錄;
2、為站點指定使用的域名或IP地址;
3、為遠程用戶提供用於上傳文件的FTP用戶名和密碼。一、在Web伺服器上配置IIS
InternetInformationServer的縮寫為(IIS)是一個WorldWideWebserver。
Gopherserver和FTPserver全部包容在裡面。
IIS意味著你能發布網頁,並且有ASP(ActiveServerPages)、JAVA、VBscript產生頁面,
有著一些擴展功能。
其次,IIS是隨WindowsNTServer4.0一起提供的文件和應用程序服務巧畝器,
是在WindowsNTServer上建立Internet伺服器的基本組件。它與WindowsNTServer完全集成,
允許使用WindowsNTServer內置的安全性以及NTFS文件系統建立強大靈活的Internet/Intranet站點。1、為站點准備一個IP地址
任何一個能被訪問的站點必須有一個固定的IP地址為前提,WindowsServer2003或WindowsXP
允許為同一快網卡設置多個IP地址,操作方法如下:
在「本地連接」上右擊,在彈出的快捷菜單中執行「屬性」命令,打開「本地連接屬性」對話框。
選擇「Internet協議(TCP/IP)」後單擊【屬性】按鈕,在打開的對話框中單擊【高級】按鈕,然後單
擊「IP地址」區域中的【添加】按鈕,在打開的對話框中輸入要添加的IP地址與子網掩碼即可。
(如IP地址:192.168.0.1,子網掩碼:255.255.255.0)註:微軟對上述操作有明確的說明:「如果同一網卡的IP地址超過9個,不能保證其運行的穩定性」。
對於這上問題的一個有效拆橡的解決辦法是:如果同一伺服器中安排的站點數量過多時,可以通過在IIS
中指定不同的TCP埠號來區分不同的站點。如:「信息服務(IIS)管理器」
打開IIS管理窗口。在管理器的左窗口中選擇「網站」,再在「操作」菜單中選擇「新建」下的「網站」
命令。啟動「網站創建向導」,然後按向導提示分別輸入網站的描述和為網站分配的IP地址等。操作完成
後將建立一個空的站點。只要將完成的網站發布到網站的指定目錄下就可以通過瀏覽器對網站進行訪問了。
註:對於沒有添加IIS的系統先要為其添加IIS。添加方法是:打開「控制面板」的「添加/刪除程序」
選擇「添加/刪除Windows組件」中選中「Internet信息服務(IIS)」同時將系統盤插入光碟機中點擊「下一步」
進行IIS的安裝。只有先安裝好IIS才在IIS中進行對網站的配置。
註:對於創建好虛擬站點的網站還可以在IIS管理窗口中對其進行進一步的設置。在IIS管理窗口中右
擊創建好的網站,打開其屬性對話框進行進一步的設置:
(1)由於VS2005創建的ASP.NET網站需要ASP.NET2.0
版本的支持,而IIS一般默認的為ASP.NET1.1故要在打開的屬性窗口的ASP.NET選項卡下的「ASP.NET2.0
版本」下拉列表框中選擇ASP.NET2.0版本。
(2)在打開的屬性窗口的「文檔」選項卡的「啟用默認文檔」區點擊【添加】按鈕將網站的起始頁面的名稱
添加到文本框中。這樣在瀏覽器中輸入站點的域名或IP地址後將打開默認的起始頁,而無需輸入起始頁面名稱。
(3)在打開的屬性窗口的「網站」選項卡中可以更改站點的描述、IP地址和TCP埠等信息。在第一次發布網站時往往還會遇到以下幾個問題:
(1)瀏覽器中輸入網站的地址後出現如下的提示:
「伺服器應用程序不可用
您試圖在此Web伺服器上訪問的Web應用程序當前不可用。請點擊Web瀏覽器中的「刷新」按鈕重試您的請求。」當我們查看系統事件日誌發現:錯誤:
未能初始化AppDomain:/LM/W3SVC/1/Root,未能載入文件或程序集「System.Web....」錯誤:由於無法創建應用程序域,因此未能執行請求。錯誤:0x80070005拒絕訪問。
警告:
未能初始化AppDomain:/LM/W3SVC/...
Exception:System.IO.FileLoadException
Message:未能載入文件或程序集「System.Web,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a」或它的某一個依賴項。拒絕訪問。
等的錯誤提示信息。對於上述問題產生的原因一般有兩個:
1、asp.net2.0沒有正確地在IIS中注冊
2、許可權問題如果是第一種情況,可以重新注冊asp.net:
系統盤windowsmicrosoft.net_x000c_ramework_x000b_2.0.50727(此處為版本號)aspnet_regiis.exe
-i
或者是直接在Mocrosoft.NETFrameworkv2.0的SDK命令提示符下輸入:aspnet_regiis.exe
-i
如果是許可權問題,需要確保asp.net運行帳戶(默認情況下,在win2003中是Network
Service,在xp中是aspnet)對N個目錄具有相應的訪問許可權,主要是系統目錄
(具體列表可以在網上很容易找到),還有一個容易忽略的目錄:Web應用所對應的虛擬目錄
(2)瀏覽器中輸入網站的地址後出現如下的提示:
「訪問IIS元數據失敗」這是由於先安裝的VS2005,後安裝的IIS才出現的。解決辦法如下:
在開始菜單中打開"Microsoft.NETFrameworkSDKV2.0"目錄下的「SDK命令提示符」,
打開以後在命令提示符中運行「aspnet_regiis-r」就可以了.
如果你安裝的只是.netFramework,那麼可以到下面的目錄運行同樣的命令:
%Systemroot%Microsoft.NETFramework_x000b_2.0.50727二、創建FTP遠程管理賬號在IIS中創建了發布ASP.NET網站需要的站點後,還需要為用戶提供一個用於遠程上傳文件的FTP伺服器賬號。
當然如果只是在區域網上發布的話,最後一步就省了。
C. 如何在本地計算機中配置.net伺服器
在默認網站屬性的常規屬性中選擇配置--然後單擊調試選項卡--起用那裡的兩個ASP和ASP.NET的調試環境就可以了
.其他配置我就不說了.你應該知道.如果不知道的話我下面提供了一個詳細的調試環境文章以供參考.
大家知道,Microsoft為了更好地預防惡意用戶和攻擊者的攻擊,在默認情況下,沒有將 IIS6.0 安裝到 Windows Server 2003 家族的成員上。而且,當我們最初安裝 IIS6.0 時,該服務在高度安全和"鎖定"模式下安裝。在默認情況下,IIS6.0 只為靜態內容提供服務即,諸如 ASP、ASP.NET、在伺服器端的包含文件、WebDAV 發布和 FrontPage Server Extensions 功能只有在啟用時才工作。在windows 2003 IIS 6.0中安裝部署ASP.net環境,我們首先要了解一下IIS6.0 新的特點,在windows 2003 Server下如何安裝IIS6.0,在IIS6.0的配合下我們如何來安裝和部署ASP.net環境,以及它們之間關系,下面的內容將給大家一個解答。
1、使用"配置您的伺服器向導"安裝 IIS6.0
1)從"開始"菜單,單擊"管理您的伺服器"。
2)在"管理您的伺服器角色"下,單擊"添加或刪除角色"。
3)閱讀"配置您的伺服器向導"中的預備步驟,然後單擊"下一步"。
4)在"伺服器角色"下,單擊"應用程序伺服器 (IIS,ASP.NET)",然後單擊"下一步"。
5)閱讀概要信息,然後單擊"下一步"。
6)單擊"完成"。
2、使用控制面板安裝 IIS、添加組件或刪除組件
1)從"開始"菜單,單擊"控制面板"。
2)雙擊"添加或刪除程序"。
3)單擊"添加/刪除 Windows 組件"。
4)在"組件"列表框中,單擊"應用程序伺服器"。
5)單擊"詳細信息"。
6)單擊"Internet 信息服務管理器"。
7)單擊"詳細信息"以查看 IIS 可選組件的列表。
8)選擇要安裝的所有可選組件。
9)單擊"確定",直到返回到"Windows 組件向導"。
10)單擊"下一步",然後完成"Windows 組件向導"。
三、在Windows 2003 Server 安裝 ASP.NET
Windows Server 2003 家族利用 ASP.NET 和 IIS 集成改善了開發人員體驗。ASP.NET 識別大多數 ASP 代碼,同時為創建可作為 Microsoft .NET Framework 的一部分工作的企業級 Web 應用程序提供更多的功能。使用ASP.NET 允許我們充分利用公共語言運行庫的功能,如類型安全、繼承、語言互操作性和版本控制。IIS 6.0 還為最新的 Web 標准,包括 XML、簡單對象訪問協議 (SOAP) 和 Internet 協議版本 6.0 (IPv6.0),提供支持。
ASP.NET 是一個統一的 Web 開發平台,它提供開發人員創建企業級 Web 應用程序所需的服務。盡管 ASP.NET 的語法基本上與 ASP 兼容,但是它還提供了一個新的編程模型和基礎結構以提高應用程序的安全性、縮放性和穩定性。通過逐漸向現有的 ASP 應用程序增加 ASP.NET 功能,我們可以自由地使其增大。ASP.NET 是一個編譯的、基於 .NET 的環境;我們可以用任何 .NET 兼容的語言(包括 Microsoft Visual Basic.NET,Microsoft Visual C# 和 Microsoft JScript .NET)創作應用程序。另外,整個 Microsoft .NET Framework 可用於任何 ASP.NET 應用程序。開發人員可以很容易地從這些技術受益,這些技術包括管理的公共語言運行庫環境、類型安全、繼承等。
ASP.NET的優點如下:
1)可管理性: ASP.NET 使用基於文本的、分級的配置系統,簡化了將設置應用於伺服器環境和 Web 應用程序的工作。因為配置信息是存儲為純文本的,因此可以在沒有本地管理工具的幫助下應用新的設置。配置文件的任何變化都可以自動檢測到並應用於應用程序。
2)安全: ASP.NET 為 Web 應用程序提供了默認的授權和身份驗證方案。開發人員可以根據應用程序的需要很容易地添加、刪除或替換這些方案。
3)易於部署: 通過簡單地將必要的文件復制到伺服器上,ASP.NET 應用程序即可以部署到該伺服器上。不需要重新啟動伺服器,甚至在部署或替換運行的已編譯代碼時也不需要重新啟動。
4)增強的性能: ASP.NET 是運行在伺服器上的已編譯代碼。與傳統的 Active Server Pages (ASP) 不同,ASP.NET 能利用早期綁定、實時 (JIT) 編譯、本機優化和全新的緩存服務來提高性能。
5)靈活的輸出緩存: 根據應用程序的需要,ASP.NET 可以緩存頁數據、頁的一部分或整個頁。緩存的項目可以依賴於緩存中的文件或其他項目,或者可以根據過期策略進行刷新。
6)國際化: ASP.NET 在內部使用 Unicode 以表示請求和響應數據。可以為每台計算機、每個目錄和每頁配置國際化設置。
7)移動設備支持: ASP.NET 支持任何設備上的任何瀏覽器。開發人員使用與用於傳統的桌面瀏覽器相同的編程技術來處理新的移動設備。
8)擴展性和可用性: ASP.NET 被設計成可擴展的、具有特別專有的功能來提高群集的、多處理器環境的性能。此外,Internet 信息服務 (IIS) 和 ASP.NET 運行時密切監視和管理進程,以便在一個進程出現異常時,可在該位置創建新的進程使應用程序繼續處理請求。
9)跟蹤和調試: ASP.NET 提供了跟蹤服務,該服務可在應用程序級別和頁面級別調試過程中啟用。可以選擇查看頁面的信息,或者使用應用程序級別的跟蹤查看工具查看信息。在開發和應用程序處於生產狀態時,ASP.NET 支持使用 .NET Framework 調試工具進行本地和遠程調試。當應用程序處於生產狀態時,跟蹤語句能夠留在產品代碼中而不會影響性能。
10)與 .NET Framework 集成: 因為 ASP.NET 是 .NET Framework 的一部分,整個平台的功能和靈活性對 Web 應用程序都是可用的。也可從 Web 上流暢地訪問 .NET 類庫以及消息和數據訪問解決方案。ASP.NET 是獨立於語言之外的,所以開發人員能選擇最適於應用程序的語言。另外,公共語言運行庫的互用性還保存了基於 COM 開發的現有投資。
11)與現有 ASP 應用程序的兼容性: ASP 和 ASP.NET 可並行運行在 IIS Web 伺服器上而互不沖突;不會發生因安裝 ASP.NET 而導致現有 ASP 應用程序崩潰的可能。ASP.NET 僅處理具有 .aspx 文件擴展名的文件。具有 .asp 文件擴展名的文件繼續由 ASP 引擎來處理。然而,應該注意的是會話狀態和應用程序狀態並不在 ASP 和 ASP.NET 頁面之間共享。
安裝 ASP.NET
在 Windows Server 2003 家族、Windows 2000 (Professional、Server 和 Advanced Server)以及 Windows XP Professional 上的客戶端和伺服器應用程序都支持 ASP.NET。
運行 Microsoft Windows Server 2003 家族成員的伺服器可以配置為應用程序伺服器,並將 ASP.NET 作為在配置應用程序伺服器角色時可以啟用的選項。要向產品伺服器部署 ASP.NET Web 應用程序,在分發應用程序之前,必須確保在產品伺服器中啟用了 ASP.NET 和 IIS 角色。
1、使用"配置您的伺服器"向導在運行 Windows Server 2003 的伺服器中安裝 ASP.NET
1)從"開始"菜單中,單擊"管理您的伺服器";在"管理您的伺服器"窗口中,單擊"添加或刪除角色"。
2)在"配置您的伺服器向導"中,單擊"下一步",並在"伺服器角色"對話框中,選中"應用程序伺服器 (IIS、ASP.NET)",然後單擊"下一步"。
3)在"應用程序伺服器選項"對話框中,選中"啟用 ASP.NET"復選框,單擊"下一步",然後再單擊"下一步"。
4)如有必要,請將 Windows Server 2003 安裝 CD 插入 CD-ROM 驅動器,然後單擊"下一步"。
5)當安裝完成時,單擊"完成"。
2、在運行 Windows Server 2003 的伺服器中使用"添加或刪除程序"安裝 ASP.NET
1)從"開始"菜單中,指向"控制面板",然後單擊"添加或刪除程序"。
2)在"添加或刪除程序"對話框中,單擊"添加/刪除 Windows 組件"。
3)在"Windows 組件"向導中的"組件"中,選中"應用程序伺服器"復選框,然後單擊"下一步"。
4)當在"Windows 組件"向導中完成對 Windows Server 2003 的配置時,單擊"完成"。
3、在運行 Windows Server 2003 的伺服器中的 IIS 管理器中啟用 ASP.NET
1)從"開始"菜單中,單擊"運行"。
2)在"運行"對話框中的"打開"框中,鍵入 inetmgr,然後單擊"確定"。
3)在 IIS 管理器中,展開本地計算機,然後單擊"Web 服務擴展"。
4)在右側窗格中,右鍵單擊"ASP.NET"然後單擊"允許"。ASP.NET 的狀態變為"允許"。
ASP.NET Web 應用程序的布局
ASP.NET 應用程序被定義為可從 Web 伺服器上的虛擬目錄及其子目錄中調用的所有文件和可執行碼。其中可以包含網頁(.html 文件)、Web 表單頁面(.aspx 文件)、Web 表單用戶控制項(.ascx 文件)、XML Web 服務(.asmx 文件)、HTTP 處理程序、HTTP 模塊和其他文件(如圖像和配置文件)。現在使用的所有與 Microsoft .NET Framework 版本相關的腳本映射也都是 ASP.NET 應用程序的一部分。ASP.NET 應用程序必須位於 IIS 虛擬目錄(也稱為應用程序根目錄)中。ASP.NET 應用程序可包含已編譯的程序集(通常是包含業務邏輯的 DLL 文件)、用於存儲預編譯代碼的已知目錄(目錄名總是 \Bin)、存儲在基於文本的、易讀的 Web.config 文件中的配置設置、頁、伺服器控制項,以及 XML Web 服務。
伺服器中任何不與其他應用程序共享的預編譯代碼必須存儲在應用程序的 \Bin 目錄中。它是應用程序的本地程序集緩存。Web.config 文件在基於 XML 的文本文件中存儲應用程序級的配置文件。這意味著可以使用任意標準的文本編輯器或 XML 分析器來創建它們,而且它們是可讀的。如果不在應用程序根目錄中包含 Web.config 文件,則配置設置由 Machine.config 文件中整個伺服器的配置文件來確定。安裝 .NET Framework 時,會安裝 Machine.config 文件的某個版本。
下圖顯示了 ASP.NET 應用程序文件系統布局的示例。
本圖中的應用程序包括 \Bin 目錄中的兩個 DLL 文件、一個 Default.aspx 頁,一個名為 Menu.ascx 的用戶控制項、一個名為 MyWebService.asmx 的 XML Web 服務以及一個 Global.asax 文件。另外,該應用程序是使用下列三個配置文件配置的:系統根目錄中計算機級別的 Machine.config 文件、C:\Inetpub\Wwwroot 目錄中站點級別的 Web.config 文件和應用程序根目錄中應用程序級別的 Web.config 文件。當站點的 Web.config 文件覆蓋 Machine.config 文件中的設置時,在應用程序根目錄中存儲的配置設置將覆蓋站點的 Web.config 文件和 Machine.config 文件中的設置。
ASP.NET與IIS、ASP 之間的比較
ASP.NET 應用程序與 Internet 信息服務 (IIS) 之間的關系如下:IIS 通過 aspnet_isapi.dll(ASP.NET 的進程模型)對可發布的 ASP.NET 文件的所有請求提供服務。IIS 不會處理伺服器端的代碼;而 ASP.NET 引擎則會處理伺服器端代碼,然後將輸出返回給 IIS(如果可能,或另一個 Web 伺服器)。
ASP.NET 並非僅僅是下一代的ASP,它為創建利用 Internet 的網路應用程序提供了全新的編程模型。ASP.NET與ASP比較的特點如下:
1、改進的性能和可伸縮性
1)編譯後執行:ASP.NET 比傳統 ASP 的運行速度更快,同時保留了 ASP"只需點擊保存"的更新模型。無需顯式的編譯步驟。ASP.NET 自動檢測變化,根據需要動態編譯文件,並且保存編譯結果以便後續的請求再次使用。動態編譯保證了用戶的應用程序總是最新的,並且編譯後執行的操作會使其運行速度更快。對於多數從傳統的 ASP 遷移到 ASP.NET 的應用程序,其處理的頁數增長了 3 至 5 倍。
2)大容量輸出緩存:ASP.NET 輸出緩存極大地改進了應用程序的性能和可伸縮性。當在頁面中啟用輸出緩存時,ASP.NET 就會執行一次該頁並將結果在發送至用戶之前保存在內存中。當其他用戶請求同一頁面時,ASP.NET 使用內存中的緩存結果向用戶提供服務,而不是重新執行該頁面。輸出緩存是可配置的,並且可以用來緩存單個區域或整個頁面。
3)Web 場會話狀態:ASP.NET 會話狀態允許我們在 Web 場中的所有計算機之間共享會話數據。現在,用戶可以通過多個請求訪問 Web 場中不同的伺服器,並且仍然具有完全訪問會話數據的許可權。
2、增強的可靠性
內存泄漏、死鎖和故障保護:ASP.NET 自動檢測錯誤(例如,死鎖和內存泄漏)並進行恢復以確保我們的應用程序始終可用。例如,當檢測到內存泄漏時,ASP.NET 將自動啟動新的 ASP.NET 工作進程副本,並將所有的新請求定向到該進程。當舊進程完成掛起請求的處理後,會經過適當的處置並釋放泄漏的內存。
3、部署簡單
1)"非接觸式"應用程序部署:使用 ASP.NET,我們可以通過將其復制到伺服器來進行整個應用程序的部署。配置設置將存儲在應用程序的 XML 文件中。
2)動態更新運行的應用程序:ASP.NET 允許我們不必重新啟動 Web 伺服器而更新已編譯的組件。與傳統的 COM 組件(這些組件需要在部署更新後手動重新啟動 Web 伺服器)不同,ASP.NET 自動檢測更改並使用新的代碼啟動。
3)遷移路徑簡單:ASP.NET 可以和傳統的 ASP 應用程序一起在 Microsoft Windows 2000、Windows XP、以及 Windows Server 2003 家族成員的 IIS 上運行。我們可以一次遷移一個應用程序,甚至是單獨的頁面。ASP.NET 甚至允許我們繼續使用現有的傳統 COM 商務組件。
4、新的應用程序模型
1)XML Web 服務:XML Web 服務允許應用程序通過 Internet 進行通信和共享數據,而不管操作系統和編程語言如何。ASP.NET 使得公開和調用 XML 網路服務變得簡單。
2)移動 Web 設備支持:ASP.NET 移動控制項允許我們處理超過 80 台使用 ASP.NET 的移動 Web 設備。我們只需一次性寫入應用程序,移動控制項就能自動生成請求設備的頁面。
5、開發人員的效率
1)簡單的編程模型:具有伺服器控制項(這些控制項允許我們使用比傳統 ASP 更少的代碼來構建效果極佳的頁面)的 ASP.NET 使得動態構建真實的 Web 應用程序變得更加容易。
2)靈活的語言選項:ASP.NET 不僅支持 Microsoft Visual Basic Scripting Edition (VBScript) 和 Microsoft JScript,而且支持 25 種以上的 .NET 語言,包括對 Visual Basic .NET、Microsoft C# 和 JScript .NET 的內置支持。
3)豐富的類框架:.NET Framework 類庫提供了 4500 多種類,這些類封裝了大量的功能,諸如 XML、數據訪問、文件上載、正則表達式、圖像生成、性能監視和日誌記錄、事務、消息隊列和 SMTP 郵件。
D. 我有一個ASP.NET做的網站,部署到伺服器上後訪問主頁就會報訪問被拒絕,該怎麼辦
改文件夾是不是不在IIS的目錄下?換個路徑試試吧。直接在IIS的目錄下建一個文件夾,然後把文件指向該路徑看看還有沒有問題。
E. 鎵嬫満aspx鏂囦歡鎵撳紑鏁欑▼
榪欐槸ASPNET鍔ㄦ佺殑緗戦〉濡傛灉浣犳兂鏌ョ湅鎴栫紪杈戞枃浠墮噷杈圭殑鍐呭癸紝鐢ㄤ竴鑸鐨勬枃鏈緙栬緫杞浠跺氨鍙浠ュ傛灉鏄鎯沖湪嫻忚堝櫒涓鏌ョ湅鏂囦歡榪愯屽嚭鏉ョ殑鏁堟灉錛岄偅浣犲緱灝嗘枃妗f墍鍦ㄧ殑Web絝欑偣錛屾斁鍦↖IS鍏朵粬鏀鎸丯ET鎶鏈鐨勬湇鍔″櫒涔熷彲浠ヤ腑銆
閭d釜鏄痺en鏈嶅姟鍣ㄦ墦寮鐨勶紝鍙鏈夐氳繃杞浠舵妸鎵嬫満鍙樻垚鏈嶅姟鍣錛屽氨鍙浠ヤ簡銆
鍙抽敭鈥渁spx鏂囦歡鈥濓紝閫夋嫨鈥滅紪杈戔 錛屽氨鍙浠ユ墦寮aspx鏂囦歡鏄寰杞鐨勫湪鏈嶅姟鍣ㄧ榪愯岀殑鍔ㄦ佺綉欏墊枃浠訛紝灞炰簬ASPNET鎶鏈疉SPNET鏄鐢卞井杞鍦路NET Framework妗嗘灦涓鎵鎻愪緵錛屽紑鍙慦eb搴旂敤紼嬪簭鐨勭被搴擄紝灝佽呭湪鏂囦歡涓錛屾樉銆
aspx鍦ㄥ㈡埛絝搴旇ユ槸涓嶈兘鐩存帴鎵撳紑錛屼笅杞藉簲璇ユ槸鏂囨湰錛屽彲浠ョ敤璁頒簨鏈鎵撳紑錛屼絾鏄鎵撳紑鐨勫苟涓嶆槸婧愪唬鐮佹墍浠*aspx姝e父搴旇ョ敤IE鎵撳紑騫朵笖搴旇ユ槸綾諱技浜巃spx銆