经过一番折腾,我终于能够检测到实际的错误。
我做了什么
在 IE 中使用 Tools->F12 Developer Tools 或在 IE 中按 F12。然后使用“网络”选项卡来跟踪导致问题的最后一页/链接是什么。发现是我的网站导致了错误。现在是时候找出实际错误了。
我在 Web.Config 文件中找到了
<system.web>
<customErrors defaultRedirect="Error.htm" mode="RemoteOnly"/>
这导致重定向到显示通用自定义错误消息的“Error.htm”。所以我将上面的 customErrors 元素替换为如下
<customErrors mode="Off"/>
参考:Web.config Custom Errors mode Conflict
现在我收到了实际错误。错误是:
从客户端检测到具有潜在危险的 Request.Form 值 (ConfigurationRequest="http://go.microsoft.com/fwlink/?LinkID=212874。
异常详细信息:System.Web.HttpRequestValidationException:从客户端检测到潜在危险的 Request.Form 值(ConfigurationRequest="
现在我需要找出这个问题发生的原因和根本原因。让我们看看我能找到什么。但它肯定这个问题是由来自 3rd 方网站的 HTTP GET (Request.Form) 调用引起的
然后我找到A potentially dangerous Request.Form value was detected from the client
我添加了<httpRuntime requestValidationMode="2.0"/> 对.Net4.0 运行时有效
(如果 .Net 运行时为 2.0,则添加 <pages validateRequest="false"> )
到 web.config 它开始工作了。
但是还有一些错误。有些系统 IE 没有保存会话和配置文件变量。当我使用会话和配置文件变量时,这会在页面加载时导致几个问题。
我找到Session Variables not saved when page is in an iFrame
并添加
IIS 中的 P3P 标头:
名称 = p3p
Value = CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"
它在 iFrame 中开始工作的文件。呼!!!