0

在此示例中,我使用的是 Sitefinity 5.1 和 RadGrid。

今天早上我一直在对开发服务器上的一个页面进行故障排除,并且我已经确认它在具有样式(模板)的页面上的行为与在准系统页面(无样式、无脚本等)上的行为不同:

  1. 该页面在 Chrome 中无法使用,但在 IE 和 Firefox 中可以使用
  2. 基本页面上的页面(没有模板、标题或其他任何内容)在 IE、Firefox 和 Chrome 中工作

使用的代码:

Response.Redirect(String.Format("~/services/separation-by-code/managesbyc?id={0}", DateTime.Now.Ticks.ToString()));

在到达那里之前,我正在使用刻度来刷新页面。

以下是一些结果:

火狐:seabass.ptagis.org/services/separation-by-code/managesbyc?id=634854696522350585 -> 有效

基本 Sitefinity 页面上的 Chrome:seabass.ptagis.org/services/separation-by-code/managesbyc?id=634854701574768045 -> 有效

样式页面(CSS、Scritps 等)上的 Chrome:seabass.ptagis.org/services/%2fservices%2fseparation-by-code%2fmanagesbyc%3fid%3d634854699444302751 -> 不

我在下面附上了服务器错误。

我确实完成了设置 web.config httprequests = 2.0 和页面验证 = false 的所有步骤。那没有帮助。

任何帮助表示赞赏。

“/”应用程序中的服务器错误。从客户端 (?) 检测到潜在危险的 Request.Path 值。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.Web.HttpException:从客户端检测到潜在危险的 Request.Path 值 (?)。源错误:在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:[HttpException(0x80004005):从客户端检测到潜在危险的 Request.Path 值(?)。]
System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +11494475
System.Web.PipelineStepManager.ValidateHelper(HttpContext context) +184 版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.272

4

1 回答 1

1

如果您使用的是 .NET 4.0,您应该能够通过 web.config允许包含问号 (?)的 url

<system.web>
   <httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,:,\" />
</system.web>

注意,我刚刚删除了问号(?),原来的默认字符串是:

<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,:,\,?" />
于 2013-01-21T08:19:54.437 回答