ASP.Net MVC 3.0、.NET 4.0、IIS 7
我知道它已被问过很多次,但我仍然无法弄清楚它有什么问题。
我只是偶尔收到这些消息(每天不到 1 条),每天大约有 4000 次访问。
这是错误报告的链接:
http://wowreforge.com/elmah.axd/detail?id=6CBE6DCA-88C2-45E7-AF53-A53061B8E25D
(注意有指向 XML 和 JSON 详细报告的链接)
首先要注意的是 URL (PATH) 包含 UTF-8 编码字符:/US/Warsong/Spartan%C3%B6
第二件事,请求是HEAD,而不是GET
我认为,这些细节中的任何一个都不应该导致我收到错误。
我已经用 GET 和 HEAD 请求尝试过此 URL,但无法重现错误。
还有什么我可以戳的吗?
最佳答案
请注意 PATH_TRANSLATED = E:\web\wowreforgec\htdocs\EU\Kael%27Thas\Acekhor
。在磁盘上查找文件路径之前,URL 编码字符 %27
似乎未被转换为 '
。 %
字符被 default configuration of the RequestPathInvalidCharacters 禁止属性,因此输入被认为是危险的并抛出异常。
编辑
HttpUtility.UrlDecode(string s)方法应将 /EU/Kael'Thas/Acekhor
转换为 /EU/Kael'Thas/Acekhor
。应在将虚拟路径解析为物理路径时调用此方法(或类似功能之一)。您是否使用自定义方法将虚拟路径转换为物理路径?
关于asp.net-mvc - "A potentially dangerous Request.Path value was detected from the client (%)."但请求似乎没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6361315/