我有一个使用托管 Web 核心的 Azure Web 角色(即在 ServiceDefinition.cdef 中注释掉),但我似乎无法注册要提供的 .ogg 的 mimeType。我做了很多搜索并找到了一些建议的解决方案,但似乎没有任何效果。
一种解决方案建议添加 custom mime type in the web.config 。当在我的本地 IIS(即不在 Azure 中)上将 Web 角色作为 Web 应用程序运行时,此方法有效,但当我在 Azure 中运行它时,它不起作用。 .ogg 返回 404.0 错误(在 fiddler 中,它的 Content-Type 为 text/html;charset=utf-8)。
另一个建议是在 ServiceDefinition.cdef 中注册一个启动任务,该任务将运行一个 cmd 文件,该文件将调用 appcmd.exe 来设置 mimeType(例如 %windir%\system32\inetsrv\appcmd.exe set config/section:staticContent/+"[fileExtension='ogg',mimeType='audio/ogg']"
)。同样,这不起作用。
其他人在尝试提供其他静态内容类型时似乎已经使用这些方法取得了成功。我对为什么它对他们有效而不对我有效的唯一猜测是,他们在完整 IIS 模式下运行 Azure,而我在托管 Web 核心中运行。
任何帮助将不胜感激。
最佳答案
我的猜测是 .ogg 文件实际上并不存在。确保 .ogg 是 Visual Studio 项目的一部分并标记为“Build Action = Content”。 (在本地,这可能会起作用,因为 .ogg 文件与其余代码位于同一目录中,但在云中,它可能不会发布。)
(如果您为应用程序启用了远程桌面,测试应该很容易。只需远程进入其中一个实例,然后在 E:\驱动器上查找该站点。然后查看 .ogg 文件是否实际上就在您期望的地方。)
关于windows - 使用托管 Web 核心在 Windows Azure Web 角色中提供 .ogg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7940151/