背景:在测试环境中一切正常,使用的是Exchange2013,上生产环境Exchange2016,部署后产生如下错误:
Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. 远程服务器
返回错误: (401) 未经授权。 ---\u003e System.Net.WebException: 远程服务器返回错误: (401) 未经授权。\r\n 在
System.Net.HttpWebRequest.GetResponse()\r\n 在
Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse
()\r\n 在 Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)\r\n
--- 内部异常堆栈跟踪的结尾 ---\r\n 在 Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse
(IEwsHttpWebRequest request)\r\n 在 Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest
(IEwsHttpWebRequest\u0026 request)\r\n 在 Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()\r\n
在 Microsoft.Exchange.WebServices.Data.ExchangeService.FindAppointments(FolderId parentFolderId, CalendarView
calendarView)\r\n 在 CalendarUC.Code.ExChangeDAL.DeleteRecurringItemS(String UserName, String Password, DateTime
StartDate, DateTime EndDate)"}
产生以上错误,一般原因是查看日程的账号有问题,问题解决方法:
ExchangeCalendarAdminAccount与ExchangeAdminAccount合并了,为同一个账号。
<!--创建Exchange 账号的管理员账号,密码是管理的默认密码-->
<add key="ExchangeAdminAccount" value="mapp@tedaedu.cn"/>
<!--创建Exchange 日历的管理员账号,密码是管理的默认密码CalendarAdmin-->
<add key="ExchangeCalendarAdminAccount" value="mapp@tedaedu.cn"/>
但如上配置还是报错,错误提示:”该帐户无权模拟所请求的用户“,到这里离成功不远啦。
解决办法:
1.Open the Exchange Management Shell
2.输入: New-ManagementRoleAssignment –Name:impersonationAssignmentName –Role:ApplicationImpersonation –User:mapp
mapp就是你要设置的模拟账号,当然你也可以设置其他.
Configuring Exchange Impersonation:http://msdn.microsoft.com/en-us/library/bb204095.aspx