ASP.Net MVC 3.0,.NET 4.0,IIS 7
我知道有很多次被问过,但我仍然无法弄清楚它有什么问题。
我偶尔会收到这些邮件(每天不到1条),而且每天访问量大约为4k。
以下是错误报告的链接:
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请求此网址,但无法重现错误。
还有什么我可以捅的?
答案 0 :(得分:0)
请注意PATH_TRANSLATED = E:\web\wowreforgec\htdocs\EU\Kael%27Thas\Acekhor
。在查找磁盘上文件的路径之前,看起来URL编码字符%27
未被转换为'
。 default configuration of the RequestPathInvalidCharacters属性禁止%
字符,因此输入被认为是危险的并且抛出异常。
HttpUtility.UrlDecode(string s)方法应将/EU/Kael%27Thas/Acekhor
转换为/EU/Kael'Thas/Acekhor
。应该在将虚拟路径解析为物理路径的点处调用此方法(或类似函数之一)。您是否使用自定义方法将虚拟路径转换为物理路径?