我在IIS 7.5上运行了几个星期的ASP.NET MVC 4 Web应用程序,我注意到最近我遇到了很多以下错误:
System.Web.HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (?).
at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
< br。>
我知道当URL路径包含非法字符时会引起此异常,但奇怪的是,在我的情况下,URL是有效的。以下是网址的一个示例:www.mysite.com/myApp/bookTitle?chapter=12&page=278
。
但是,当我尝试任何报告的链接时,它们工作正常,没有任何例外。
通过查看错误日志,我注意到查询字符串未显示为 QUERY_STRING 变量的一部分,但它与 PATH_INFO中的其余路径一起包含在内变量如下所示:
/myApp/bookTitle?chapter=12&page=278
。
所以似乎(?)不被识别为路径和查询之间的分隔符(可能是因为某种URL编码)但我不知道如何解决这个问题。
非常感谢任何帮助。
答案 0 :(得分:1)
当ASP.NET收到带有'?'的请求时编码为'%3F'的字符会出现此错误消息。同时它将'%3F'解码为'?' Request [“PATH_INFO”]或Request.PathInfo变量中的字符。
如果查看Request [“HTTP_URL”]或Request.Url.OrigionalString,您可能会看到不同的内容。
答案 1 :(得分:0)
确保单个代码: 我也遇到了同样的问题。 以下是我的正确代码:
titleNew = string.Format(“{1}”,idx,resource.Title);