Windows Azure - 在 Windows Azure IIS 存储中提供未知 (mp4) MIME 类型

Posted

技术标签:

【中文标题】Windows Azure - 在 Windows Azure IIS 存储中提供未知 (mp4) MIME 类型【英文标题】:Windows Azure - Serve unknown (mp4) MIME types in Windows Azure IIS storage 【发布时间】:2011-06-08 02:32:30 【问题描述】:

我有一个 Windows azure 部署(一个 Web 角色),可根据请求将一对视频文件(mov 和 mp4)从 azure 存储中提取到它自己的本地 IIS 存储中,然后我通过浏览器进行访问。

这听起来可能很愚蠢,但我有充分的理由这样做。

很遗憾,我无法访问 mp4 文件。 mov 很好,但 mp4 给我“404 - 找不到文件或目录。”

我已经研究过了,似乎是因为 IIS 不会返回未知的文件类型,而 mp4 必须属于这一类。如果它是一个普通的 IIS 服务器,我可以注册 mp4 mime 类型,但我不知道如何在 Windows Azure 中进行。

我可以在 RDP 中手动执行此操作,但这不切实际,因为角色经常更换,这意味着我每次都需要手动重新执行。它必须通过配置文件之一或在代码中完成。

谁能帮忙?

谢谢!!

史蒂文

【问题讨论】:

【参考方案1】:

你不能在 web.config 中添加自定义 mime 类型吗?我刚碰到这个链接:

http://www.iis.net/ConfigReference/system.webServer/staticContent/mimeMap

相关的web.config xml是:

<configuration>
   <system.webServer>
      <staticContent>
         <mimeMap fileExtension=".syx" mimeType="application/octet-stream" />
         <mimeMap fileExtension=".tab" mimeType="text/plain" />
      </staticContent>
   </system.webServer>
</configuration>

希望这会有所帮助。

【讨论】:

成功了,谢谢。我确实在我问之前做了很多谷歌搜索,但我一定是使用了错误的搜索词! 这个可以添加到app.config而不是web.config吗? 只是为了补充这个非常好的答案,如果您正在使用 react,请通过以下方式将此 web.config 复制到构建文件夹(使用 npm react build )(Liviu Costea 的学分): medium.com/hackernoon/…【参考方案2】:

我使用了https://social.msdn.microsoft.com/Forums/azure/en-US/79eb0c22-fe78-41d6-ac57-03055610b2a8/mp4-media-files-on-azure-website?forum=windowsazurewebsitespreview&prof=required的建议:

<staticContent>
  <remove fileExtension=".mp4"/>
  <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>

【讨论】:

【参考方案3】:

要配置 mime 类型,请在 video 文件夹中创建一个包含此内容的新 web.config 文件:

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

此解决方案仅适用于 Azure,本地项目可能不再适用。我的解决方案是使用“添加配置转换”进行本地项目的空 web.config 文件的发布:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
</configuration>

当您右键单击 web.config 时,选择“添加配置转换”:

在 web.Release.config 文件中将这个添加到 de 配置标签中:

<system.webServer xdt:Transform="Insert">
  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
  </staticContent>
</system.webServer>

【讨论】:

谢谢,我一开始没有将它添加到同一个文件夹中,我只是更新了现有的 web.config 并没有解决我的问题。现在效果很好!【参考方案4】:

关于以 MP4 的 MIME 类型播放视频的具体问题的答案。

answered here

【讨论】:

以上是关于Windows Azure - 在 Windows Azure IIS 存储中提供未知 (mp4) MIME 类型的主要内容,如果未能解决你的问题,请参考以下文章

azure terraform 将 azure 文件共享附加到 Windows 机器

如何在 Azure 服务结构中迁移 Windows 服务

手机刷Windows系统和使用微软Azure虚拟系统的体验有啥不同?

Azure Service Fabric 集群在 Windows 7 单机上运行 Windows 容器

Windows Azure是啥

windows azure区域可以选国外吗