用戶端記錄 (Windows Media Format 11 SDK)
當讀取器物件從伺服器讀取資料時,會將記錄資訊傳送至伺服器。 內容提供者通常會使用此資訊來測量服務品質、產生帳單資訊或追蹤廣告。 記錄資訊不包含任何個人資料。
應用程式可以在讀取器物件上呼叫 IWMReaderAdvanced::SetClientInfo 方法,以指定記錄的部分資訊。 例如,您可以指定使用者代理程式字串、播放機應用程式的名稱,或裝載播放機的網頁。
記錄資訊包含識別會話的 GUID。 根據預設,讀取器會產生匿名會話識別碼。 或者,讀取器可以改為傳送可唯一識別目前使用者的識別碼。 若要啟用此功能,請使用TRUE值呼叫IWMReaderAdvanced2::SetLogClientID方法。
除了原始伺服器之外,您還可以設定讀取器物件,將記錄資訊傳送至另一部伺服器。 若要這樣做,請使用伺服器的 URL 呼叫 IWMReaderNetworkConfig::AddLoggingUrl 方法。 此 URL 應該指向可處理 HTTP GET 和 POST 要求的腳本或可執行檔。 您可以使用多播和記錄廣告代理程式 (wmsiislog.dll) ,也可以撰寫自訂 ASP 或 CGI 腳本來接收記錄資料。
注意
您可以使用 logURL 屬性建立伺服器端播放清單,以取得相同的功能。
當讀取器物件傳送記錄檔時,它會執行下列動作:
- 將空的 GET 要求傳送至伺服器。
- 剖析下列其中一個字串的伺服器回應:
<body><h1>NetShow ISAPI Log Dll</h1>
-
<body><h1>WMS ISAPI Log Dll/0.0.0.0</h1>
其中 「0.0.0.0」 是任何有效的版本號碼。
- 傳送具有記錄資訊的 POST 要求。
下列程式碼顯示一個範例 ASP 腳本,可接收記錄資訊並將它寫入檔案:
<html>
<body>
<h1>WMS ISAPI Log Dll/9.00.00.00.00</h1>
<%@ Language=VBScript %>
<%
Dim temp, i, post, file, fso
' Convert the binary data to a string.
For i = 1 To Request.TotalBytes
temp = Request.BinaryRead(1)
pose = pose & Chr(AscB(temp))
Next
Set fso = createobject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\log.txt", 8, TRUE)
file.writeline Now
file.writeline post
file.writeBlankLines 2
%>
</body>
</html>
您可以指定多部伺服器來接收記錄資訊;只要使用每個 URL 呼叫 AddLoggingUrl 一次。 若要清除接收記錄的伺服器清單,請呼叫 IWMReaderNetworkConfig::ResetLoggingUrlList 方法。