0

我有一个使用托管 Web 核心的 Azure Web 角色(即在 ServiceDefinition.cdef 中被注释掉),我似乎无法为要提供的 .ogg 注册 mimeType。我做了很多搜索并找到了一些建议的解决方案,但似乎没有任何效果。

一种解决方案建议在 web.config 中添加自定义 mime 类型。这在我的本地 IIS(即不在 Azure 中)上将 Web 角色作为 Web 应用程序运行时有效,但是当我在 Azure 中运行它时,它不起作用。.ogg 返回 404.0 错误(在提琴手中,它的 Content-Type 为 text/html;charset=utf-8)。

另一个建议是在 ServiceDefinition.cdef 中注册一个 Start 任务,该任务将运行一个 cmd 文件,该文件将调用 appcmd.exe 来设置 mimeType(例如%windir%\system32\inetsrv\appcmd.exe set config /section:staticContent /+"[fileExtension='ogg',mimeType='audio/ogg']")。同样,这不起作用。

在尝试为其他静态内容类型提供服务时,其他人似乎已经使用这些方法取得了成功。我唯一的猜测是为什么它对他们有用,而不是对我有用的是,当我在托管 Web 核心中运行时,它们在完全 IIS 模式下运行 Azure。

任何帮助将不胜感激。

4

1 回答 1

2

我的猜测是 .ogg 文件实际上并不存在。确保 .ogg 是 Visual Studio 项目的一部分并标记为“构建操作 = 内容”。(在本地,这可能只是工作,因为 .ogg 文件与您的其余代码位于同一目录中,但在云中,它可能不会被发布。)

(如果您为应用程序启用了远程桌面,这应该很容易测试。只需远程进入其中一个实例并在 E:\ 驱动器上四处寻找该站点。然后查看 .ogg 文件是否确实存在你期望它在哪里。)

于 2011-10-29T20:23:20.557 回答