我有一个托管在 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 设置或其他技术可以绕过此验证,以便在无需重写路径逻辑的情况下不会收到此错误?我的谷歌搜索失败了。例如,我发现这个 IIS 论坛帖子链接自SO Answer,其中谈到
将所有请求映射到 ASP.NET 并使用 ASP.NET 的 StaticFileHandler 为它们提供服务
但是,该帖子没有解释如何执行此操作;它似乎也不适用。
编辑:(上面添加了错误页面图片)
作为另一个花絮,Nancy 路由返回表单的显式视图
return View["view_name", myModel];
因此,应该绕过内容协商。