IIS 服务器在尝试下载 .img 文件时出现 406 错误

IIS 服务器在尝试下载 .img 文件时出现 406 错误

我们有一个嵌入式产品,它使用名为 nvtools 的程序通过 HTTP 下载其固件升级。这在使用 Apache 的 Linux 服务器上有效。但我们切换到使用 IIS 的 Windows 服务器。现在我们收到一条消息:“406 - 客户端浏览器不接受所请求页面的 MIME 类型。”

尝试使用 nvtools 下载固件更新时。我无法在嵌入式系统端进行任何更改以使其正常工作。我们的 IT 人员尚未能够修复此问题。他需要更改 IIS 中的哪些设置才能修复此问题?

丹尼斯

答案1

添加.img到 MIME 类型列表application/octet-stream

答案2

大多数情况下,人们遇到 MIME 类型问题是因为 IIS 没有配置为提供具有特定 MIME 类型的文件,该类型的 http 状态代码为404.3,您的 406 表示客户端发送了http accept header服务器无法理解的请求。典型的 accept 标头如下:

Accept: text/html,application/xhtml+xml,application/xml

nvtools发送带有服务器不知道的 MIME 类型的 accept 标头,这解释了为什么使用浏览器进行相同的请求可以正常工作。浏览器发送有效的 Accept 标头。

接受标头告诉服务器,对于此请求,客户端接受一种或多种 MIME 类型的数据。

您应该嗅探网络流量以找出使用的 Accept 标头nvtools,将使用的 MIME 类型添加到 IIS 中的 MIME 类型映射中没有帮助,因为它们用于提供 MIME 类型,而不是用于提供 MIME 类型Accept

您有两个选择:

  1. 修复 Accept 标头中的 MIME 类型nvtools

  2. 此解决方案是我的假设,我尚未测试过。将使用的 MIME 类型添加nvtools到 Windows(而非 IIS)中,这可以通过HKEY_CLASSES_ROOT在注册表中添加多个条目来完成,但现在我不记得详细信息了。无法Accept在 IIS 中配置 MIME 类型,因此我假设将其添加到 Windows 中也会被 IIS 接收。

相关内容