媒体播放器的WCF流媒体服务/多个GET请求

时间:2014-03-17 17:18:37

标签: wcf streaming windows-media-player

我遇到了WCF流媒体服务的问题。该问题是由于Windows Media Player在您指示加载URL时提交多个GET语句。简而言之,多个GET语句会导致整个流被多次请求。

我猜这些请求中的每一个都有一个特定的任务,例如可能请求元数据,媒体类型等。问题是我似乎无法在Web上找到任何关于这些GET请求的规范,也无法理解捕获的数据包“GET”请求以确定它们究竟期待什么。

第一个GET语句(长度294):

  

GET   /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729   HTTP / 1.1 \ r \ n

     

接受: / \ r \ n

     

User-Agent:Windows-Media-Player / 12.0.7601.17514 \ r \ n

     

Accept-Encoding:gzip,deflate \ r \ n

     

主机:serverName:port \ r \ n

     

连接:Keep-Alive \ r \ n

秒(500~包后)GET语句(长度364):

  

GET   /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729   HTTP / 1.1 \ r \ n

     

Cache-Control:no-cache \ r \ n

     

连接:Keep-Alive \ r \ n

     

Pragma:getIfoFileURI.dlna.org \ r \ n

     

接受: / \ r \ n

     

User-Agent:NSPlayer / 12.00.7601.17514 WMFSDK / 12.00.7601.17514 \ r \ n

     

GetContentFeatures.DLNA.ORG:1 \ r \ n

     

主机:serverName:port \ r \ n

第三个(130~包后)GET语句(长度324):

  

GET   /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729   HTTP / 1.1 \ r \ n

     

接受: / \ r \ n

     

User-Agent:NSPlayer / 12.00.7601.17514 WMFSDK / 12.00.7601.17514 \ r \ n

     

冰冷元数据:1 \ r \ n

     

Accept-Encoding:gzip,deflate \ r \ n

     

主机:serverName:port \ r \ n

     

连接:Keep-Alive \ r \ n

第四次(200~包后)GET声明(长度687):

  

GET   /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729   HTTP / 1.1 \ r \ n

     

接受: / \ r \ n

     

User-Agent:NSPlayer / 12.0.7601.17514 \ r \ n

     

主机:serverName \ r \ n

     

X-Accept-Authentication:Negotiate,NTLM,Digest,Basic \ r \ n

     

Pragma:version11-enabled = 1 \ r \ n

     

附注:   无缓存,速率= 1.000,流时间= 0时,数据流的偏移量= 0:0,分组NUM = 4294967295,最大持续时间= 0 \ r \ n

     

Pragma:packet-pair-experiment = 1 \ r \ n

     

Pragma:pipeline-experiment = 1 \ r \ n

     

支持: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

     

接受语言:en-US,*; q = 0.1 \ r \ n

第五(40~包后)GET声明(长度294):

  

GET   /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729   HTTP / 1.1 \ r \ n

     

接受: / \ r \ n

     

User-Agent:NSPlayer / 12.0.7601.17514 WMFSDK / 12.0 \ r \ n

     

Accept-Encoding:gzip,deflate \ r \ n

     

主机:serverName:port \ r \ n

     

连接:Keep-Alive \ r \ n

第六(200~包后)GET声明:

  

GET   /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729   HTTP / 1.1 \ r \ n

     

接受: / \ r \ n

     

User-Agent:NSPlayer / 12.0.7601.17514 WMFSDK / 12.0 \ r \ n

     

Accept-Encoding:gzip,deflate \ r \ n

     

主机:serverName:port \ r \ n

     

连接:Keep-Alive \ r \ n

第七/最后(70~包后)GET声明:

  

GET   /Service.svc/GetVideo/?id=123&authCode=37566528-DA87-4293-92F7-8BF791461729   HTTP / 1.1 \ r \ n

     

Cache-Control:no-cache \ r \ n

     

连接:Keep-Alive \ r \ n

     

Pragma:getIfoFileURI.dlna.org \ r \ n

     

接受: / \ r \ n

     

User-Agent:NSPlayer / 12.00.7601.17514 WMFSDK / 12.00.7601.17514 \ r \ n

     

GetContentFeatures.DLNA.ORG:1 \ r \ n

     

主机:serverName:port \ r \ n

之前有没有人遇到这个问题,或者对这些GET请求中的每个请求有什么参考作出回应?他们不可能都想要一个新的STREAM,如果没有调用新流,WCF似乎无法处理它们。

1 个答案:

答案 0 :(得分:0)

把它放在htaccess

SetEnvIf User-Agent NSPlayer   BAD_BOT

Order Allow,Deny
Allow from all
Deny from env=BAD_BOT

请看这篇文章,详情如下: http://www.webhostingtalk.com/showthread.php?t=637335