我遇到了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似乎无法处理它们。
答案 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