使用英语阅读

通过


(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 属性创建服务器端播放列表来获得相同的功能。

 

当读取器对象发送日志时,它将执行以下操作:

  1. 将空 GET 请求发送到服务器。
  2. 分析以下字符串之一的服务器响应:
    • <body><h1>NetShow ISAPI Log Dll</h1>
    • <body><h1>WMS ISAPI Log Dll/0.0.0.0</h1> 其中“0.0.0.0”是任何有效的版本号。
  3. 发送包含日志信息的 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 方法。

实现网络功能

IWMReaderAdvanced 接口

IWMReaderAdvanced2 接口