当前位置: 首页 > 编程笔记 >

Exchange2013提示“出现意外错误,无法处理您的请求”处理方案

万俟玉书
2023-03-14
本文向大家介绍Exchange2013提示“出现意外错误,无法处理您的请求”处理方案,包括了Exchange2013提示“出现意外错误,无法处理您的请求”处理方案的使用技巧和注意事项,需要的朋友参考一下

前几天公司海外站点的Exchange Sever 2013出了点问题,Outlook用户可以正常连接到Exchang server进行邮件收发,脱机通讯簿、activesync等也都正常,唯独通过WEB访问OWA和ECP的时候,输入用户名和密码,点击登录验证完用户名密码后,开始跳转至邮箱的过程中会清楚的看到“正在打开您的邮箱,正在处理。。。”,但是最后就会提示“发生意外错误,无法处理你的要求”,点击“详细信息”会看到类似于“X-OWA-Error: System.NullReferenceException”或者“X-OWA-Error: microsoft.exchange.data.storage.connectionfailedtransientexception”等字样。无论是在客户端还是Exchange sever本身都是同样的问题。另外有意思的问题是Exchange Server有BJ和HK 两个站点,BJ一切正常,出问题的只是HK站点。

看到这里有经验的小伙伴都会首先去检查IIS的OWA虚拟目录或者后端用户所在的Mailbox数据库。在Exchange server中打开“事件查看器”,并没有发现和Exchange和IIS相关的明显错误日志,甚至其他的应用程序等日志也没有明显的错误。Outlook可以正常收发邮件,所以基本可以排除mailbox的问题,不过还是通过eseutil.exe检查了数据库的状态—“clean shutdown”,那也可以排除数据库的问题喽。接下来就是OWA了,去检查OWA的log, Exchange安装目录的“\v15\Logging\OWA\ServerTrace”中

at Microsoft.Exchange.Clients.Common.Canary15..ctor(String logonUniqueKey)

at Microsoft.Exchange.Clients.Common.Canary15Cookie.TryCreateFromHttpCookie(HttpCookie cookie, String lohtml" target="_blank">gonUniqueKey, Canary15Profile profile)

at Microsoft.Exchange.Clients.Common.Canary15Cookie.TryCreateFromHttpContext(HttpContext httpContext, String logOnUniqueKey, Canary15Profile profile)

at Microsoft.Exchange.Clients.Owa2.Server.Core.OwaRequestHandler.InternalOnPostAuthorizeRequest(Object sender)

at Microsoft.Exchange.Clients.Owa2.Server.Core.OwaRequestHandler.OnPostAuthorizeRequest(Object sender, EventArgs e)

at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


这个过程显示的大概是exchange的前端cas和后端mailbox之间创建连接请求的过程。这时大家可能想到的是前端CAS和后端Mailbox的网络通信是否存在问题?

由于目前cas和mailbox是两台all in one角色(有dag),cas和mailbox通信基本是发生在同一台服务器上,且网络没有做过任何调整,网络问题基本也可以排除了。

接下来能想到的无非就是OWA虚拟目录或许出问题了,动手重置OWA虚拟目录后,问题依旧。。。最后终极杀手锏找了一台服务器重新安装一台exchange2013,不做任何更改直接创建用户和数据库,然后在exchange本机尝试访问owa,竟然出现同样的问题,无语了。。。

这时候可以确定问题不是exchange server本身造成的。。。。

既然不是exchange的问题,那唯独和exchange有联系的就是域控dc服务器了,可是从开始出问题就检查过AD站点的复制状况,并没有出现明显错误。

这时候想起曾经看到过国外一哥们类似问题,最后他向微软开启了一个case支持,微软用了3天15小时进行排查,最后竟然是通过修改ADSI编辑器中cas属性来解决的,整个好也是也OWA无法访问相关的。由于之前不能排除Exchange本身的问题,并且这问题很难让人和域控联系起来,因此一直没敢尝试。现在既然能确定问题和dc有关系了,那这个解决方案还是值得去尝试的。。。

具体操作如下:

1、 由于ADSI内容涉及到整个的活动目录内容,操作之前一定要做好备份,首先通过Windows Server Backup将整个dc做了一次完整备份,以备后患。(这里估计又要被鄙视了,偌大的一个公司竟然没有完善的备份系统,o(╯□╰)o)

2、 打开ADSI编辑器,连接到【配置】,然后找到【CN=Services】-->【CN=Microsoft Exchange】 -->【CN=<你的exchange组织名称>】-->【CN=Client Access】,然后右键点击选择【属性】,打开属性编辑器窗口,在【属性编辑器】选项卡中找到“msExchCanaryData”字样的属性值,然后清空(可能会有0-n多项)

这里我们将这几个值的内容再次复制到记事本中进行保存,这样可以起到备份双保险作用,慎重操作,毕竟是生产环境。

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


4、 重启exchange服务器

待Exchange服务器重启完成后进行测试,海外用户OWA和ECP恢复正常,其他outlook功能也正常。北京总部用户也一切正常。问题终于解决!

最后问题是解决了,但导致的原因并没有真正找到,希望看到这篇文章并熟知exchange2013的小伙伴来一起讨论。。。。

关于Exchange2013,刚刚一年多的时间已经有 CU5的更新了,无奈让人感慨Exchange2013架构的改变让人耳目一新,同时也带来了N多问题,真心希望Exchange2013的命运不要像Exchange2007那样。。。( ╯□╰ )

解决过程中咨询了多个技术好友,由于Exchange2013是新产品并没有太普及,小伙伴们也都没有遇到过,在此感谢各位!同时感概自己无意中竟然成了先吃螃蟹的人。。。( ╯□╰ ),再者公司没有购买微软技术支持服务,最后想通过MVP通道向微软寻求技术支持,怎奈需要1个工作日的响应时间,最终也没有用上MVP的这点儿福利。。。( ╯□╰ )

 类似资料:
  • 基础的 Servlet 接口定义了 service 方法用于处理客户端的请求。当有请求到达时,该方法由 servlet 容器路由到一个 servlet 实例来调用。 Web 应用的并发请求处理通常需要 Web 开发人员去设计适合多线程执行的Servlet,从而保证 service 方法能在一个特定时间点处理多线程并发执行。(译者注: Servlet 默认是线程不安全的,需要开发人员处理多线程问题)

  • 问题内容: 我正在发出ajax jsonp请求,但是失败错误处理无法正常工作。如果请求为404或500,则不会处理该错误。 我一直在四处寻找答案,但找不到任何东西。http://code.google.com/p/jquery- jsonp/ 似乎有一种解决方案,但是我找不到任何有关如何使用它的示例。 问题答案: 处理错误的两种方法 跨域JSONP请求没有错误处理。使用Github https:/

  • 但如果我将请求更改为“multipart/form-data”-春回错误400“bad request”: 为什么?也许我应该创造一些额外的豆子? PS:我需要“multipart/form-data”来与json对象一起发送文件。

  • 我正在发送一个json请求,并在python flask服务中捕获请求参数以进一步处理。但是,当我json转储请求并试图从中收集特定的参数值时,它会给我带来错误 “字符串索引必须是整数,而不是字符串” 这是我在python flask中解析的json: 我不知道我做错了什么。 下面是我的python烧瓶代码:

  • 请求处理 fpm_run()执行后将fork出worker进程,worker进程返回main()中继续向下执行,后面的流程就是worker进程不断accept请求,然后执行PHP脚本并返回。整体流程如下: (1)等待请求: worker进程阻塞在fcgi_accept_request()等待请求; (2)解析请求: fastcgi请求到达后被worker接收,然后开始接收并解析请求数据,直到req