You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java调用EWS在Exchange2016创建日程失败报存储中未找到指定对象错误

Exchange 2016 下EWS创建日程报错解决方案

错误说明

报错对应英文为The specified object was not found in the store,本质是EWS请求无法定位到目标用户的日历文件夹,由Exchange 2016和2010的配置规则差异导致,可按如下步骤逐一排查修复:

修复步骤

1. 配置EWS操作权限

Exchange 2016对跨用户邮箱操作的权限校验比2010严格,原2010可用的管理员完全访问权限默认不支持EWS跨用户写入,需单独配置权限:

  • 若需要批量操作所有医生邮箱,给管理员账号配置EWS模拟权限,在Exchange 2016 PowerShell中执行:
New-ManagementRoleAssignment -Name:EWSImpersonationConfig -Role:ApplicationImpersonation -User:"你的管理员账号名称"
  • 若仅需操作单个目标邮箱,给管理员账号单独授予目标日历的编辑权限,法语环境邮箱日历文件夹名为Calendrier,中文环境为日历,对应调整命令中的文件夹名:
# 法语环境示例
Add-MailboxFolderPermission -Identity "XXX@XXX.fr:\Calendrier" -User "管理员账号名" -AccessRights Editor

2. 适配Exchange版本参数

你当前代码中指定的Exchange2010_SP2版本参数可能被Exchange2016的安全规则拦截,修改代码中的版本声明:

// 原代码
ExchangeVersion exver = ExchangeVersion.Exchange2010_SP2;
// 替换为,若EWS库无该枚举,先升级ews-java-api到最新稳定版
ExchangeVersion exver = ExchangeVersion.Exchange2016;

3. 验证目标邮箱状态

如果管理员账号和目标医生邮箱分别在2010和2016两个环境,跨版本EWS访问会触发该错误,确认所有目标医生的邮箱已完整迁移到Exchange2016环境。可在代码中新增文件夹预校验逻辑,提前确认文件夹可访问:

// 在appointment.save之前添加如下代码
Folder calendarFolder = Folder.bind(service, new FolderId(WellKnownFolderName.Calendar, mb));
// 执行到此处无报错即说明文件夹可正常访问

4. 调整EWS节流策略

Exchange2016默认的EWS节流策略比2010严格,短时间高频请求会被拦截,可在PowerShell中修改管理员账号对应的节流策略,放宽EWS请求限制。


内容的提问来源于stack exchange,提问作者Pandalex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:39:02