国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP 3.0高級(jí)編程(二十八)

2019-11-18 21:07:38
字體:
供稿:網(wǎng)友
6.2.11  Logging Utility組件
       Logging Utility組件是asp 3.0的新組件,提供了訪問日志文件的方法,這個(gè)日志文件是由服務(wù)器支持的用于Web和FTP網(wǎng)站的IIS創(chuàng)建的。
1.  Logging Utility組件的成員
Logging Utility組件提供了六種方法,能讀取日志文件的內(nèi)容、把新記錄寫進(jìn)已存在的日志文件中。這些方法和上一章討論的FileSystemObject對(duì)象的方法有相似性,如表6-9所示:
表6-9  Logging Utility組件的方法及說明
方 法
說 明

AtEndOfLog()
用ReadLogRecord方法遍歷記錄時(shí),如果文件中的所有記錄都已讀出,返回值為True

CloseLogFiles(io_mode)
關(guān)閉打開的日志文件,io_mode的值指定要關(guān)閉的文件,常數(shù)ForReading(1)表示關(guān)閉打開供讀出的所有文件, ForWriting(2)表示關(guān)閉打開供寫入的所有文件,AllOpenFiles(32)表示關(guān)閉打開的所有文件

OpenLogFile(filename,io_mode,
service_name,service_instance,
output_format)
打開filename指定的日志文件或日志文件集,可選的io_mode參數(shù)可以設(shè)置成ForReading(缺省值,1)或 ForWriting(2)。當(dāng)讀取取一個(gè)特定的IIS服務(wù)(例如“W3SVC”和“1”)時(shí),可選的service_name和 service_instance參數(shù)限制從文件中返回的記錄。可選的output_format參數(shù)指明寫入文件時(shí)使用的格式  

ReadFilter(start,end)
當(dāng)在規(guī)定的時(shí)間和日期范圍內(nèi)讀取文件時(shí),限制返回的記錄,兩個(gè)參數(shù)都是可選的,如果忽略的話,start是文件的第一個(gè)記錄,end是最后一個(gè)記錄

ReadLogRecord()
從用OpenLogFile方法打開的當(dāng)前日志文件中讀取下一個(gè)記錄

WriteLogRecord(logging_object)
從打開供讀出的文件中把記錄寫入一個(gè)打開供寫入的文件中,參數(shù)logging_object是一個(gè)引用保存源記錄的 Logging Utility組件實(shí)例的對(duì)象變量

Logging Utility組件提供了二十種與IIS日志記錄相對(duì)應(yīng)的屬性,如表6-10所示:
表6-10  Logging Utility組件的屬性及說明
屬 性
說 明

BytesReceived
請(qǐng)求時(shí)從瀏覽器收到的字節(jié)數(shù)

BytesSent
響應(yīng)時(shí)送至瀏覽器的字節(jié)數(shù)

Clientip
客戶機(jī)或其主機(jī)(即代理服務(wù)器)的IP地址

Cookie
在請(qǐng)求中傳送的cookie內(nèi)容

CustumFields
加到請(qǐng)求中的定制報(bào)頭的一個(gè)數(shù)組

DataTime
請(qǐng)求的日期和時(shí)間(GMT)

Method
操作類型,如“Get”和“Post”

PRotocolStatus
返回到客戶機(jī)的狀態(tài)消息,即“200 OK”

ProtocolVersion
協(xié)議版本字符串,如“HTTP/1.1”

Referer
包含初始化請(qǐng)求鏈接的網(wǎng)頁的URL

ServerIP
IIS機(jī)器的IP地址

ServerName
IIS服務(wù)器的機(jī)器名

ServerPort
請(qǐng)求到達(dá)的端口號(hào),如“80”

ServiceName
服務(wù)器名稱,如“MSFTPSVC”或“W3SVC”

TimeTaken
檢索和創(chuàng)建網(wǎng)頁的總處理時(shí)間

URIQuery
請(qǐng)求中加到URL的查詢字符串中的所有參數(shù)

URIStem
請(qǐng)示的目標(biāo)URL

UserAgent
由客戶機(jī)發(fā)送的用戶代理字符串

UserName
如果不是匿名地訪問服務(wù)器,UserName是用戶的登錄名

Win32Status
處理了請(qǐng)求后返回的Win32狀態(tài)碼

2.  使用Logging Utility組件
Logging Utility組件最普遍的應(yīng)用是用于對(duì)日志文件的自定義查詢。從現(xiàn)有文件中選擇一些記錄寫入新文件的能力,意味著能夠匯總某些類型的條目,或者有選擇性地挑出一些記錄將來使用。
為了使用ForReading、ForWriting和AllOpenFiles常數(shù),必須在網(wǎng)頁的<HEAD>部分包含METADATA指令。
<!-- METADATA TYPE="typelib" FILE="C:/WINNT/system32/inetsrv/logscrpt.dll" -- >
為了遍歷記錄,僅須打開文件并且重復(fù)調(diào)用ReadLogRecord,直到AtEndOfLog的返回值為True。在下面的例子中將過濾記錄,僅獲得最后24小時(shí)以內(nèi)的記錄。
'Create the component instance
Set objLogUtil = Server.CreateObject("MSWC.IISLog")

'open the log file for reading, for the W3SVC instance number 1
objLogUtil.OpenLogFile "extend#.log", ForReading, "W3SVC", 1, 0

'set a filter for the last day's records only
objLogUtil.ReadFilter DateAdd("d", -1, Now), Now

'loop through the records
Do While Not objLogUtil.AtEndOfLog
   objLogUtil.ReadLogRecord  'read the next record
   Response.Write "Request received for page " & objLogUtil.URLStem & " on " _
                   ;   & objLogUtil.DateTime & " from IP address " _
                   ;   & objLogUtil.ClientIP & ".<BR>"
Loop
objLogUtil.CloseLogFiles(ForReading)                 'close the file(s)
本書提供了演示使用Logging Utility組件的一個(gè)示例網(wǎng)頁,這個(gè)網(wǎng)頁可以從ASP Installable Components主菜單運(yùn)行。
確保在Internet Services Manager中不允許匿名訪問包含示例文件的目錄或loggingutility.asp文件,否則將不能訪問日志文件。打開loggingutility.asp文件或包含該文件的目錄的Properties對(duì)話框的Directory Security選項(xiàng)卡,點(diǎn)擊 Anonymous access and authentication control部分的Edit按鈕,打開Authentication Method對(duì)話框,并關(guān)閉 Anonymous access選項(xiàng)。
必須改變?nèi)罩疚募奈募赃m合你的計(jì)算機(jī)。在缺省Web網(wǎng)站的Properties對(duì)話框的Web Site選項(xiàng)卡中,打開W3C Extended Logging,如圖6-22所示:

圖6-22  使用Logging Utility組件的設(shè)置1
在這個(gè)對(duì)話框中,點(diǎn)擊Properties按鈕,打開Extended Logging Properties對(duì)話框,在這里會(huì)打開要用的文件名。選擇固定大小的日志文件選項(xiàng),這樣文件名將是extend1.log和extend2.log等等。如圖6-23所示:

圖6-23  使用Logging Utility組件的設(shè)置2
打開Extended Properties選項(xiàng)卡,確保選中想要的條目,如圖6-24所示:

圖6-24  使用Logging Utility組件的設(shè)置3
現(xiàn)在可以運(yùn)行示例網(wǎng)頁并檢查結(jié)果,可以使用下列代碼在HTML表中顯示數(shù)值。
<%
Set objLogUtil = Server.CreateObject("MSWC.IISLog")
objLogUtil.OpenLogFile "extend#.log", ForReading, "W3SVC", 1, 0
objLogUtil.ReadFilter DateAdd("d", -1, Now), Now
%>
<TABLE CELLPADDING="10">
<TR>
<TH>Date/Time</TH>
<TH>Client IP</TH>
<TH>Bytes Sent</TH>
<TH>Target URL</TH>
</TR>
<%
Do While Not objLogUtil.AtEndOfLog
   objLogUtil.ReadLogRecord  'read the next record
%>
<TR>
<TD><% = objLogUtil.DateTime %></TD>
<TD><% = objLogUtil.ClientIP %></TD>
<TD><% = objLogUtil.BytesSent %></TD>
<TD><% = objLogUtil.URLStem %></TD>
</TR>
<%
Loop
objLogUtil.CloseLogFiles(ForReading)
%>
其結(jié)果如圖6-25所示:

圖6-25  使用Logging Utility組件的示例運(yùn)行結(jié)果

6.3 第三方服務(wù)器組件
       在本節(jié)中,簡(jiǎn)要概述ASP系統(tǒng)中要用到的一些常見的商用和免費(fèi)的第三方服務(wù)器組件。
       開發(fā)Web網(wǎng)站時(shí),必須完成的兩個(gè)任務(wù)是管理兼容性以及向服務(wù)器上載文件。下面將介紹的兩個(gè)組件能有助于完成上述的任務(wù),而且還介紹另外一個(gè)組件,可取代Microsoft的Registry Access組件(該組件一般是從相應(yīng)的Web網(wǎng)站得到的)。
       在附錄G中,給出了一些最為有用的組件的清單。

6.3.1 BrowserHawk組件
       很多人使用由IIS及ASP提供的Browser Capability組件時(shí),都會(huì)遇到一個(gè)麻煩,瀏覽器的定義文件(browscap.ini)要求定期的維護(hù)或替換以跟得上新版瀏覽器的要求。
       Cyscape公司提供了broscap.ini的升級(jí)版本,同時(shí)提供了他們自己的能在服務(wù)器端和客戶端進(jìn)行瀏覽器檢測(cè)的組件。而且,還提供了便捷的圖形界面用于查看及修改自己的瀏覽器定義文件,如圖 6-26所示:

圖6-26  BrowserHawk組件
       可以看到對(duì)于每個(gè)瀏覽器類型,都有許多屬性,如動(dòng)態(tài)HTML、樣式表、 javaScript版本、文件上載能力、SSL(Secure Sockets Layer)支持、操作系統(tǒng)細(xì)節(jié)以及語言等。與Microsoft的 Browser Capability組件一樣,也可以添加自己的內(nèi)容。這里還有一個(gè)非常有用的具有向?qū)эL(fēng)格的特性,能幫助我們把新的瀏覽器類型添加到定義文件中,如圖6-27所示:

圖6-27  向定義文件添加新瀏覽器的向?qū)?br>       BrowserHawk組件具有辯認(rèn)出新的瀏覽器(采用一項(xiàng)特殊的模式匹配算法)以及那些缺省支持的一系列瀏覽器的能力,包括Opera和WebTV。使用過濾功能添加新屬性也很容易。
       當(dāng)然,BrowserHawk組件的最大優(yōu)點(diǎn)可能是定期對(duì)來自Cyscape公司的Web網(wǎng)站的瀏覽器定義文件新版本進(jìn)行自動(dòng)檢測(cè),同時(shí)把一些內(nèi)容吸收合并到當(dāng)前使用的定義文件里,這意味著沒有必要不斷地將定義文件拷貝到所有的Web服務(wù)器中。
       BrowserHawk組件使用起來比較容易,與Browser Capability組件是兼容的,需要做的是在創(chuàng)建組件實(shí)例的Server.CreateObject方法或<OBJECT>元素中改變ProgID。把 “MSWC.BrowserType”改為“cyScape.browserObj”。
       Set objBCap = Server.CreateObject(“cyScape.browserObj”)
       對(duì)可能出現(xiàn)的問題,應(yīng)該閱讀BrowserHawk組件的文檔。        可從Cyscape公司的Web網(wǎng)站(http://www.cyscape.com)下載BrowserHawk 的拷貝。本章中已經(jīng)包含了使用BrowserHawk組件的示例網(wǎng)頁,使讀者能夠了解如何使用BrowserHawk組件,在Chapter06目錄下的BrowserHawk子目錄中可查找到這個(gè)示例頁面。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 满洲里市| 公主岭市| 加查县| 县级市| 潼关县| 谷城县| 弋阳县| 广丰县| 宝兴县| 四子王旗| 砚山县| 北票市| 永吉县| 南安市| 青铜峡市| 巴里| 蓬安县| 云南省| 咸丰县| 苏尼特右旗| 武邑县| 永州市| 安宁市| 务川| 南丰县| 沙洋县| 尼木县| 谷城县| 思南县| 永平县| 毕节市| 曲松县| 资阳市| 错那县| 达州市| 调兵山市| 海丰县| 天津市| 渑池县| 宣汉县| 望谟县|