I've run into a problem with a WCF streaming service. That problem is due to Windows Media Player submitting multiple GET statements when you tell it to load the URL. Simply put, the multiple GET statements cause the entire stream to be requested more than once.
I'm guessing each one of these requests has a specific task, such as possibly requesting metadata, media type, and so on. The problem is I cannot seem to find any specification as for these GET requests on the web, nor can I make much sense of the packet captured "GET" requests to determine what exactly they are expecting back.
The first GET statement (length 294):
GET /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729 HTTP/1.1\r\n
Accept: /\r\n
User-Agent: Windows-Media-Player/12.0.7601.17514\r\n
Accept-Encoding: gzip, deflate\r\n
Host: serverName:port\r\n
Connection: Keep-Alive\r\n
Second (500~ packets later) GET statement (length 364):
GET /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729 HTTP/1.1\r\n
Cache-Control: no-cache\r\n
Connection: Keep-Alive\r\n
Pragma: getIfoFileURI.dlna.org\r\n
Accept: /\r\n
User-Agent: NSPlayer/12.00.7601.17514 WMFSDK/12.00.7601.17514\r\n
GetContentFeatures.DLNA.ORG: 1\r\n
Host: serverName:port\r\n
Third (130~ packets later) GET statement (length 324):
GET /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729 HTTP/1.1\r\n
Accept: /\r\n
User-Agent: NSPlayer/12.00.7601.17514 WMFSDK/12.00.7601.17514\r\n
Icy-Metadata: 1\r\n
Accept-Encoding: gzip, deflate\r\n
Host: serverName:port\r\n
Connection: Keep-Alive\r\n
Fourth (200~ packets later) GET statement (length 687):
GET /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729 HTTP/1.1\r\n
Accept: /\r\n
User-Agent: NSPlayer/12.0.7601.17514\r\n
Host: serverName\r\n
X-Accept-Authentication: Negotiate, NTLM, Digest, Basic\r\n
Pragma: version11-enabled=1\r\n
Pragma: no-cache,rate=1.000,stream-time=0,stream-offset=0:0,packet-num=4294967295,max-duration=0\r\n
Pragma: packet-pair-experiment=1\r\n
Pragma: pipeline-experiment=1\r\n
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.startupprofile\r\n
Pragma: xClientGUID={3300AD50-2C39-46c0-AE0A-1623CEEA9A7E}\r\n
Accept-Language: en-US, *;q=0.1\r\n
Fifth (40~ packets later) GET statement (length 294):
GET /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729 HTTP/1.1\r\n
Accept: /\r\n
User-Agent: NSPlayer/12.0.7601.17514 WMFSDK/12.0\r\n
Accept-Encoding: gzip, deflate\r\n
Host: serverName:port\r\n
Connection: Keep-Alive\r\n
Sixth (200~ packets later) GET statement:
GET /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729 HTTP/1.1\r\n
Accept: /\r\n
User-Agent: NSPlayer/12.0.7601.17514 WMFSDK/12.0\r\n
Accept-Encoding: gzip, deflate\r\n
Host: serverName:port\r\n
Connection: Keep-Alive\r\n
Seventh/LAST (70~ packets later) GET statement:
GET /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729 HTTP/1.1\r\n
Cache-Control: no-cache\r\n
Connection: Keep-Alive\r\n
Pragma: getIfoFileURI.dlna.org\r\n
Accept: /\r\n
User-Agent: NSPlayer/12.00.7601.17514 WMFSDK/12.00.7601.17514\r\n
GetContentFeatures.DLNA.ORG: 1\r\n
Host: serverName:port\r\n
Has anyone run into this before or have any reference to what each of these GET requests is expecting in response? They can't possibly all want a new STREAM and WCF appears to not handle them without calling for a new stream.