【发布时间】:2015-11-18 22:22:21
【问题描述】:
我有一个托管在 ASP.Net 上的 Nancy 网站,其中包含许多自定义路由。这些路由包括看起来像文件路径的映射(例如/path/to/xml_file.xml),但会解析为应该在浏览器中显示的 HTML 文件。对于大多数文件,这可以正常工作。但是,对于 XML 文件(可能还有其他 mime 类型),我从 IIS 8 Express 收到 406.0 HTTP 错误,明确指出
HTTP 错误 406.0 - 不可接受
无法显示资源,因为您的浏览器不接受文件扩展名。
请求被拒绝,因为它包含请求的文件扩展名不支持的 MIME 类型的 Accept 标头。
验证请求的文件扩展名的 MIME 设置,以确保此 MIME 类型可接受。
是否有任何 web.config 设置或其他技术可以绕过此验证,以便在无需重写路径逻辑的情况下不会出现此错误?我的谷歌搜索失败了。例如,我发现this IIS forum post链接自SO Answer,其中谈到了
将所有请求映射到 ASP.NET 并使用 ASP.NET 的 StaticFileHandler 为它们提供服务
但是,该帖子没有说明如何执行此操作;似乎也不适用。
编辑:(上面添加了错误页面图片)
作为另一个花絮,Nancy 路由返回表单的显式视图
return View["view_name", myModel];
因此,应该绕过内容协商。
【问题讨论】:
-
您是否检查过 .xml 是否特定于 IIS 中的 mime 类型?
-
@DinoMyte 正如我们在ourmandave 回答的评论中所指定的,我在web.config 文件中使用了不同的映射,但无济于事。
标签: asp.net iis web-config nancy http-status-code-406