相同视图和浏览器版本中不同的 IE XML/XSL 行为,但使用不同的域用户帐户

2024-04-14

我们的一位用户在尝试访问我们的 Web 应用程序视图之一时遇到问题(IE9;行为在 6、8 和 9 中显得一致,但在域帐户之间不一致)。对于该特定用户的 Windows 域帐户,无论使用哪些凭据来访问我们的应用程序,或者使用哪台机器的浏览器;尝试访问某些视图会导致 IE 显示错误消息“样式表不包含文档元素。样式表可能为空,或者可能不是格式良好的 XML 文档。”

其他域帐户无法重现此错误,当我们 VPN 并使用我们自己的浏览器时,我们也无法重现此错误,尽管遵循完全相同的流程,具有完全相同的应用程序凭据、域帐户的相同权限和组成员身份、匹配的 IE9 版本(还使用 8 和 6 进行了测试)。我们有大约 50 个单独的客户使用此版本的应用程序,没有出现此类问题。

Web 应用程序日志中没有任何内容可以说明这一点;成功和失败案例的请求和响应完全相同。

手动将请求附加到浏览器地址栏中的 URL 会导致 IE 呈现我们期望的 XML 响应。无论失败还是成功,从浏览器请求返回的 XML 看起来都是格式良好的。

出现此错误之前,相关 Web 应用程序已静态一段时间。客户的 IT 组织已验证可以重现错误的域帐户和不能重现错误的域帐户之间的权限和组成员身份是相同的。

有什么建议么? OLE 或 ODBC 驱动程序设置是否会影响域帐户级别的 XML 解析?对于同一域帐户,Internet Explorer 是否会在不同的计算机上受到类似的影响,同时与无法重现此行为的帐户具有相同的组成员身份和权限?

在清除浏览器中除下载历史记录和密码之外的所有内容后,我能够间歇性地让问题域帐户正确显示页面,但这只是少数情况,并且在最多几个请求(通常是第一个)之后显示错误消息。


当页面被缓存或更新引用者时,ACCEPT 标头会发生变化,并且显然该域没有文档的权限。结果,样式表的 MIME 类型从application/xml or text/xsl to *.* or text/html。 解决方案是检查接受标头 http://blogs.msdn.com/b/ieinternals/archive/2009/07/01/9811694.aspx并防止缓存或重定向错误请求:

# Skip Opera
RewriteCond %{HTTP_USER_AGENT} !Opera 

# Check the Accept header for text/html
RewriteCond %{HTTP_ACCEPT} text\/html [OR]

# Check the Accept header for image type or *.*
RewriteCond %{HTTP_ACCEPT} gif|jpeg|png$|\*.\*$

# Forbid access if the file extension matches XSLT
RewriteRule .*\.(xsl|xslt)$ - [F]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相同视图和浏览器版本中不同的 IE XML/XSL 行为,但使用不同的域用户帐户 的相关文章

随机推荐