无法在Azure网站上托管MP4文件

时间:2013-06-17 15:56:14

标签: azure mp4 host

我在Azure的预留网站上托管静态网站(它是PaaS,无法访问OS / IIS)。我正在尝试添加一些.mp4视频,但是当我点击我获得的链接时

The resource you are looking for has been removed, had its name changed, 
or is temporarily unavailable.

请参阅示例here。 如果我右键单击链接并尝试保存文件我得到 - 失败 - 没有文件。

我正在使用付费实例,所以不要认为这是资源问题。视频文件小于2MB。他们从未工作过。该网站非常静态。

有谁知道如何解决这个问题? 我应该以其他方式托管MP4文件吗?

谢谢,

6 个答案:

答案 0 :(得分:59)

链接的SO答案在概念上对我有用,但它没有表明适当的fileExtension。我的配置必须改为表示以下内容。 (注意,对于任何有这个问题的人,默认情况下我的azure网站最初没有web.config,所以我不得不将以下内容添加到文本文件中,另存为web.config,并将FTP添加到我的webroot

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
               <remove fileExtension=".mp4" />
               <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
               <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
     </staticContent>
    </system.webServer>
</configuration>

答案 1 :(得分:6)

您是否已按照要求确认.MP4的MIME类型已正确配置:

Windows Azure - Serve unknown (mp4) MIME types in Windows Azure IIS storage

答案 2 :(得分:1)

目前只有一种方法可以做到这一点,我已与Azure团队确认。

将web.config文件添加到应用程序wwwroot\web.config的根目录中,其中包含以下内容

<?xml version="1.0" encoding="UTF-8"?>
  <configuration>
    <system.webServer>
      <staticContent>
        <mimeMap fileExtension=".mp4" mimeType="application/mp4" />
      </staticContent>
    </system.webServer>
  </configuration>

答案 3 :(得分:0)

我遇到了同样的问题。视频在localhost上播放,但在部署到Azure时未播放。

ewitkows' answer是正确的。 Web服务器未返回正确的MIME类型,因此您需要将它们添加到web.config的<system.webServer>元素中。

但是,我想再添加一个细节。当您添加ewitkows' answer提及的代码时,您的网站可能会停止在localhost上显示视频,即使它可以在Azure上正确显示。如果右键单击<video> HTML元素,然后从上下文菜单中单击查看视频菜单命令,它将为您提供 500 HTTP状态代码,并显示IIS自定义错误页面,如下所示:

enter image description here

观察配置错误配置文件配置源部分。他们告诉您IIS已经具有您在web.config中添加的元素的MIME类型映射。

<staticContent>
  <remove fileExtension=".ogv"/>
  <remove fileExtension=".webm"/>
  <remove fileExtension=".mp4"/>

  <mimeMap fileExtension=".ogv" mimeType="video/ogg"/>
  <mimeMap fileExtension=".webm" mimeType="video/webm"/>
  <mimeMap fileExtension=".mp4" mimeType="video/mp4"/>
</staticContent>

因此,您还需要先删除IIS。然后它将同时在localhost和Azure上运行。

答案 4 :(得分:0)

如果您使用的是Azure应用服务,请参见How to add Mime Types in ASP.NET Core的答案 我尝试了web.config路由,但没有用,但是编辑Startup.cs可以了

答案 5 :(得分:-1)

Azure Web Apps不支持某些类型的媒体文件。您可以使用Azure媒体服务上传它,然后从您的代码中引用媒体文件。