我在一个规模相当大的学区工作,刚刚成功部署了 Exchange 2013,并在夏天将所有用户的邮件迁移到新系统。一路上虽然遇到了一些坎坷,但随着学校很快重新开学,我们有大量员工现在首次登录并使用新系统,不幸的是,他们中一小部分但越来越多的人开始在尝试访问他们的选项时遇到现在令人恐惧的“严重错误”消息:
完整报告如下:
Client Information
------------------
User Agent: Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0
CPU Class: undefined
Platform: Win32
System Language: undefined
User Language: en-US
CookieEnabled: true
-----------------
Exception Details
-----------------
Date: Fri Aug 07 2015 14:38:24 GMT-0800 (Alaskan Standard Time)
Message: Error: Permission denied to access property "frameElement"
Url: https://webmail.example.com/ecp/15.0.1104.5/scripts/common.js
Line: 1
Call Stack
----------
ErrorHandling.$EM@https://webmail.example.com/ecp/15.0.1104.5/scripts/common.js:1:172926
ErrorHandling.showUnhandledException@https://webmail.example.com/ecp/15.0.1104.5/scripts/common.js:1:171997
Detailed Call Stack
-------------------
这不是打字错误或遗漏,“详细调用堆栈”确实是空白的。无论使用哪种浏览器,都会发生这种情况:我收到了使用 Firefox、Chrome、Safari 和 IE 的用户的报告;我确信 Opera 不在该列表中的唯一原因是没有人使用它。重新加载页面(如消息所示)没有帮助,“确定”按钮毫无用处。出现错误后,用户可以关闭并重新打开浏览器,甚至可以转到完全不同的浏览器并获得相同的结果。
这纯粹是客户端错误:当发生这种情况时,服务器日志中绝对不会显示任何相关内容。
在我看来,这显然是 Web 浏览器采用了其常用的反 XSRF 防御措施,而 OWA 则“很好地”处理了该错误。我已经连续 4 周无法弄清楚为什么会发生这种情况。
- 用户被引导至 webmail.example.com 来访问 OWA。
- 每个服务器上的每个虚拟目录都配置为使用 webmail.example.com 作为外部和内部主机名(或外部/内部 URL 的主机部分)。
- 查看出现此错误的 Web 浏览器的“网络”面板,我只看到对 webmail.example.com 上的资源的请求 - 我根本看不到涉及的其他主机。
更加奇怪的是,当这种情况发生时,大多数用户可以按照以下步骤解决:
- 注销 Outlook Web App
- 清除浏览器的缓存和“离线数据”/“离线网站”等(仅清除缓存是不够的)
- 完全关闭浏览器
- 重新打开浏览器并重新登录 OWA
但这只是一个临时的解决办法,因为问题很快就会再次出现。
我怎样才能找出导致此错误的原因,更重要的是,我怎样才能修复它?
答案1
我们找到了一个针对 Firefox 和 Chrome 的修复程序,同时不会破坏已经正常运行的 IE11。这适用于每当用户从另一个 Web 应用程序重定向到 OWA 时,都会在新选项卡中打开 OWA:
添加rel="noreferrer"到你的 html 链接标签应该有帮助: http://blog.chromium.org/2009/12/links-that-open-in-new-processes.html
我们仍在寻找适用于 Edge 浏览器的修复方法。目前我们的解决方法是CTRL + 鼠标左键单击链接
答案2
我们在将 Exchange 2013 从 SP1 更新到 CU9 时也遇到了此错误。并且发现该错误不会在 IE11“真实”浏览器中重现,而不是桌面浏览器。桌面 IE 会出现同样的错误。已在 win 7、8.1、10 上验证。因此,用户可以在那里设置任何选项,然后使用任何其他浏览器,只需进行常规邮件流操作即可。可能也需要进行这些调整,但我们没有使用它:
谢谢。