Compartilhar via


Registro em log do cliente (SDK do Windows Media Format 11)

[O recurso associado a esta página, do SDK do Windows Media Format 11, é um recurso herdado. Foi substituído por de Leitor de Origem e do Gravador do Coletor de. de Leitor de Origem e Gravador do Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use de Leitor de Origem e o Gravador do Coletor em vez de do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Quando o objeto leitor lê dados de um servidor, ele envia informações de log para o servidor. Normalmente, os provedores de conteúdo usam essas informações para medir a qualidade do serviço, gerar informações de cobrança ou acompanhar a publicidade. As informações de registro em log não contêm dados pessoais.

O aplicativo pode especificar algumas das informações registradas, chamando o método IWMReaderAdvanced::SetClientInfo no objeto leitor. Por exemplo, você pode especificar a cadeia de caracteres do usuário-agente, o nome do aplicativo player ou a página da Web que hospeda o player.

As informações de log incluem um GUID que identifica a sessão. Por padrão, o leitor gera uma ID de sessão anônima. Opcionalmente, o leitor pode, em vez disso, enviar uma ID que identifique exclusivamente o usuário atual. Para habilitar esse recurso, chame o métodoIWMReaderAdvanced2::SetLogClientID com o valor TRUE.

Você pode configurar o objeto leitor para enviar as informações de log para outro servidor, além do servidor de origem. Para fazer isso, chame o método IWMReaderNetworkConfig::AddLoggingUrl com a URL do servidor. Essa URL deve apontar para um script ou executável que possa lidar com solicitações HTTP GET e POST. Você pode usar o Agente de Anúncio de Log e Multicast (wmsiislog.dll) ou escrever um script ASP ou CGI personalizado para receber os dados de log.

Nota

Você pode obter a mesma funcionalidade criando uma playlist do lado do servidor com um atributo logURL.

 

Quando o objeto leitor envia o log, ele faz o seguinte:

  1. Envia uma solicitação GET vazia para o servidor.
  2. Analisa a resposta do servidor para uma das seguintes cadeias de caracteres:
    • <body><h1>NetShow ISAPI Log Dll</h1>
    • <body><h1>WMS ISAPI Log Dll/0.0.0.0</h1> em que "0.0.0.0" é qualquer número de versão válido.
  3. Envia uma solicitação POST com as informações de log.

O código a seguir mostra um exemplo de script ASP que recebe as informações de registro em log e as grava em um arquivo:

<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>

Você pode especificar vários servidores para receber informações de log; basta chamar AddLoggingUrl uma vez com cada URL. Para limpar a lista de servidores que recebem logs, chame o método IWMReaderNetworkConfig::ResetLoggingUrlList.

implementando de funcionalidade de rede

interface IWMReaderAdvanced

interface IWMReaderAdvanced2