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 机器
手机刷Windows系统和使用微软Azure虚拟系统的体验有啥不同?