在我的IIS计算机(Windows 10)上运行,但不在托管服务器上(Windows 2008R2,IIS 7.5)。
托管服务器:Chrome中没有通过网址直接打开视频。我在控制台net::ERR_CONNECTION_RESET
中收到错误。但它在IE中工作。奇怪的是,图片在Chrome中正常运行。
这是因为我实现了一种安全机制:文件调用现在被迫通过Framework路由。路由调用控制器,然后在进行一些安全检查后,将文件返回为BinaryFileResponse
。
我不得不调整webconfig(linux上的htaccess)。视频文件位于data/content
文件夹下。
<rule name="ID:0001 Folder or File exists" enabled="true" stopProcessing="true">
<match url="^(?!data/content)[a-z].*$" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsFile" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" />
</conditions>
<action type="None" />
</rule>
<rule name="ID:0002 Datafolder" enabled="true" stopProcessing="true">
<match url="^data/((?!content).)*$" />
<action type="None" />
</rule>
我在互联网上搜索,我发现的所有内容都可能是网络,防火墙或缓存问题。但我不认为这是一个问题,因为它因为我回复了Symfony BinaryFileResponse
的回复。
$response = new BinaryFileResponse($webPath);
$response->setAutoEtag(true); // Needed for partial loading of video
$response->headers->set('Content-Type', 'video/mp4');
return $response;
网络标题:
General
Request URL:http://foo.....bar.mp4
Referrer Policy:no-referrer-when-downgrade
Request Headers
Provisional headers are shown
Accept-Encoding:identity;q=1, *;q=0
chrome-proxy:frfr
Range:bytes=0-
Referer:http://foo.....bar.mp4
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36