我们有一个嵌入式产品,它使用名为 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
。
您有两个选择:
修复 Accept 标头中的 MIME 类型
nvtools
。此解决方案是我的假设,我尚未测试过。将使用的 MIME 类型添加
nvtools
到 Windows(而非 IIS)中,这可以通过HKEY_CLASSES_ROOT
在注册表中添加多个条目来完成,但现在我不记得详细信息了。无法Accept
在 IIS 中配置 MIME 类型,因此我假设将其添加到 Windows 中也会被 IIS 接收。