【摘要】    

    最近在Exchange 2013环境中,遇到OWA/ECP无法访问的问题;用户是可以正常通过Outlook 收发邮件,只有当访问OWA/ECP页面后,输入账户验证信息后,提示"出现意外错误,无法处理你的请求";    比较神奇的时,当前环境是总部7Exchange 前端服务器,14Exchange 后端服务器,分部2台全角色部署;几十台邮件服务器,开始时是总部一台后端服务器上的数据库的用户,在排错的过程中又出现了一台后端服务器上的用户无法正常使用OWA/ECP;此篇文章将分享下整个排错的过程,以便于大家遇到类似问题方便排错。

【现象症状】

访问 OWA 出现以下错误:

访问 ECP出现以下错误:

邮箱服务器事件日志中记录以下错误:

日志名称: Application

来源: MSExchange Control Panel

事件 ID: 4

日志名称: Application

来源: MSExchange Common

事件 ID: 4999

 

日志名称: Application

来源: ASP.NET 4.0.30319.0

事件 ID: 1309

    

【排错过程】    

 当第一时间发现故障的时候,首先就检查了用户所在数据库状态是否正常、Exchange CAS\MBX 服务是否正常,以及通过命令检查组件状态是否正常。    

Get-ServerComponentState ServerName

    以上的检查服务器均处于正常状态,然后去查看用户所在活动数据库Exchange服务器日志,发现服务器记录以下错误:

日志名称:

Application

Application

Application

来源:

MSExchange Control Panel

MSExchange Common

ASP.NET 4.0.30319.0

事件ID:

4 

4999

1309

 通过错误信息基本可以判断是IIS故障导致该问题,最近的变更没有进行过网络的调整,唯一变更是对所有邮箱服务器\ClientAccess\ecp\web.config文件增加参数,使ECP可以正常显示所有OU列表;    

 检查了该台服务器web.config修改没有问题,同时通过google查询以上日志信息在微软论坛找到类似问题,大致的说法是,导致该问题原因是AD Configuration—Services-- Microsoft Exchange,CN=,CN=Configuration,-- Client Access 的 msExchCanaryDataX 属性值错误导致;

 当时查到这个资料后,由于没办法判断环境中的msExchCanaryData 属性值是否是正常的,此值又是一个全局的设置,出现问题的服务器只有一台;便没有在生成环境中,尝试清空此属性值来解决问题;由于该邮箱服务器上同时挂载几个生产数据库,考虑到对用户的使用影响,进行了DAG活动副本的切换,切换数据库承载服务器后,用户访问OWA\ECP 正常。但是出现此问题的原因还未查出来;    

 之后检查了该服务器IIS安全设置、重定向设置、SSL设置等等,依然没有发现异常;通过重启IIS,Exchange服务、重启服务器、回退\ClientAccess\ecp\web.config文件修改等尝试问题依然存在;不过在重启的过程中发现,重启后,马上进行OWA\ECP访问测试,是可以正常登录,但几秒后依旧出现同样的问题;    

 对用户的故障虽然解决了,但故障根本原因还未找到,第二天向微软开了CASE查这个问题,在等待微软的答复过程中,又出现了一台邮箱服务器OWA/ECP访问出错的问题,同样的现象与日志记录;这时候,意识到可能真的是由于msExchCanaryData 属性值异常导致,在测试环境中模拟了清空该属性的操作,发现对现有用户的正常使用不会造成影响,清空该值后无需重启服务器,只需重启MSExchangeOWAAppPool应用程序池即可;微软给出的答复也是建议清空msExchCanaryData 属性值来解决此问题

【解决过程】

1.打开ADSI编辑器,连接到【配置】,然后找到【CN=Services】--【CN=Microsoft Exchange】 --【CN=<Exchange组织名称>】--【CN=Client Access】

2.右键点击选择【属性】,打开属性编辑器窗口,在【属性编辑器】选项卡中找到"msExchCanaryData"字样的属性值(可能会有0-n多项)

3.将msExchCanaryDataX 属性值复制并记录至记事本中,以作备份;同时也可对AD进行备份,以作备份


4.然后清空msExchCanaryDataX 属性值(可能会有0-n多项),注意这里是清空,不是删除该属性,是清空;

5.打开CAS服务器的IIS管理器,点击【应用程序池】,找到【MSExchangeOWAAppPool】,然后点击右侧窗口的【回收】

6.重新查看msExchCanaryData 属性值,可以看到已经重新生成了msExchCanaryData 属性值

7.验证可以正常登录OWA/ECP

【问题解析】

msExchCanaryData    msExchCanaryDataExchange 架构扩展过程中创建的属性,msExchCanaryData值是加密的令牌,一般在客户端与服务器端进行OWAECP或者其他Web服务时使用    

正常访问流程:

msExchCanaryData01

非正常访问流程:

msExchCanaryData02详细解析可参考此文章:https://ucbite.wordpress.com/2014/01/13/exchange-2013-owa-ecp-failure-after-deploying-cu3/http://social.technet.microsoft.com/wiki/contents/articles/29433.exchange-2013-troubleshooting-something-went-wrong-in-both-owa-and-ecp.aspx 


本文首发 :http://stastudio.net/ @STA工作室