9

我有一个带有单个 webrole 的 Azure 项目,我试图在升级到 Windows 8 和 Visual Studio 2012 后正常运行。

问题在于任何静态内容,它返回 HTTP 500 内部服务器错误,并带有以下文本:“由于发生内部服务器错误,无法显示页面。” 任何静态内容(图像和 javascript)都会出现此错误,而动态内容可以正常提供(所有控制器操作都可以正常工作)。

我们无法让 IIS 显示详细的错误消息。我们可以找到该错误的唯一参考是在访问日志中,该日志将其显示为 500 子类型 19 错误。

我们尝试在 IIS 和 IISExpress 之间切换,出现同样的错误。我们已经尝试将所有“显示详细错误消息”选项添加到我们的 web.config 和 IIS 管理器。HTTP 和 HTTPS 端点都会发生相同的错误。

我的下一步应该是什么?

4

2 回答 2

11

罪魁祸首已经被发现。通过将默认值web.config与我们的比较,我们web.config在我们的web.config

<system.webServer>
  <staticContent>
    <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
  </staticContent>
</system.webServer>

IIS8 支持内置的 WOFF,而 IIS 7 没有。只需将这条线移动到转换中即可解决问题。

于 2012-08-17T10:08:03.000 回答
5

我很久以前就遇到过这个问题,Vegard Larsen 的回答效果很好。但是,我已经升级到 osFamily 3 (Windows Server 2012) 并发现在部署到 Azure 时我再次收到子类型 19 的 500 错误。解决方法是在转换中使用以下内容。

<system.webServer>
  <staticContent xdt:Transform="Insert">
    <remove fileExtension=".woff" />
    <mimeMap fileExtension=".woff" mimeType="application/x-woff" />
  </staticContent>
</system.webServer>

重要的部分是删除任何现有的 .woff 配置。这样您就可以确定它可以在任何 IIS 平台/配置上运行。

于 2012-12-28T15:33:45.493 回答