(Windows Media Format 11 SDK) 的客户端日志记录
读取器对象从服务器读取数据时,会将日志记录信息发送到服务器。 内容提供商通常使用此信息来衡量服务质量、生成计费信息或跟踪广告。 日志记录信息不包含任何个人数据。
应用程序可以通过对读取器对象调用 IWMReaderAdvanced::SetClientInfo 方法来指定记录的一些信息。 例如,可以指定用户代理字符串、播放器应用程序的名称或托管播放器的网页。
日志记录信息包括标识会话的 GUID。 默认情况下,读取器生成匿名会话 ID。 或者,读取器可以改为发送唯一标识当前用户的 ID。 若要启用此功能,请使用值 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 方法。