Clientprotokollierung (Windows Media Format 11 SDK)
Wenn das Leserobjekt Daten von einem Server liest, sendet es Protokollierungsinformationen an den Server. Inhaltsanbieter verwenden diese Informationen in der Regel, um die Dienstqualität zu messen, Abrechnungsinformationen zu generieren oder Werbung nachzuverfolgen. Die Protokollierungsinformationen enthalten keine personenbezogenen Daten.
Die Anwendung kann einige der protokollierten Informationen angeben, indem die IWMReaderAdvanced::SetClientInfo-Methode für das Reader-Objekt aufgerufen wird. Sie können beispielsweise die User-Agent-Zeichenfolge, den Namen der Playeranwendung oder die Webseite angeben, die den Player hostet.
Die Protokollierungsinformationen enthalten eine GUID, die die Sitzung identifiziert. Standardmäßig generiert der Leser eine anonyme Sitzungs-ID. Optional kann der Leser stattdessen eine ID senden, die den aktuellen Benutzer eindeutig identifiziert. Um dieses Feature zu aktivieren, rufen Sie die IWMReaderAdvanced2::SetLogClientID-Methode mit dem Wert TRUE auf.
Sie können das Reader-Objekt so konfigurieren, dass die Protokollierungsinformationen an einen anderen Server neben dem Ursprungsserver gesendet werden. Rufen Sie hierzu die IWMReaderNetworkConfig::AddLoggingUrl-Methode mit der URL des Servers auf. Diese URL sollte auf ein Skript oder eine ausführbare Datei verweisen, die HTTP GET- und POST-Anforderungen verarbeiten kann. Sie können den Multicast- und Protokollierungsanzeige-Agent (wmsiislog.dll) verwenden oder ein benutzerdefiniertes ASP- oder CGI-Skript schreiben, um die Protokolldaten zu empfangen.
Hinweis
Sie können dieselbe Funktionalität erhalten, indem Sie eine serverseitige Wiedergabeliste mit einem logURL-Attribut erstellen.
Wenn das Reader-Objekt das Protokoll sendet, wird Folgendes ausgeführt:
- Sendet eine leere GET-Anforderung an den Server.
- Analysiert die Serverantwort für eine der folgenden Zeichenfolgen:
<body><h1>NetShow ISAPI Log Dll</h1>
-
<body><h1>WMS ISAPI Log Dll/0.0.0.0</h1>
Dabei ist "0.0.0.0" eine beliebige gültige Versionsnummer.
- Sendet eine POST-Anforderung mit den Protokollinformationen.
Der folgende Code zeigt ein ASP-Beispielskript, das die Protokollierungsinformationen empfängt und in eine Datei schreibt:
<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>
Sie können mehrere Server angeben, um Protokollierungsinformationen zu empfangen. Rufen Sie addLoggingUrl einfach einmal mit jeder URL auf. Um die Liste der Server zu löschen, die Protokolle empfangen, rufen Sie die IWMReaderNetworkConfig::ResetLoggingUrlList-Methode auf.