EWS OAuth认证下附件下载为空(0KB)问题求助
EWS OAuth认证后附件下载为空的解决方案
你提到切换OAuth后,EWS程序其他功能正常但附件下载为空文件,且MS Graph测试正常——这说明权限没问题,问题出在EWS的附件加载逻辑上。
问题所在
你之前的代码要么混用了Attachment基类的方法,要么加载流程有误。在OAuth场景下,直接调用Attachment.Load(Path)无法正确拉取附件的二进制数据,必须先将附件内容加载到内存,再写入本地文件。
修正后的代码
直接使用FileAttachment的Content属性获取二进制数据,再写入文件,这是最可靠的实现方式:
if (Attachment is FileAttachment fileAttachment && CheckAttachmentExtension(fileAttachment.Name)) { var savePath = Path.Combine(@"C:\localPath", fileAttachment.Name); // 先加载附件内容到内存 fileAttachment.Load(); // 将二进制内容写入本地文件 File.WriteAllBytes(savePath, fileAttachment.Content); }
关键注意点
- 放弃使用
Attachment.Load(Path)这类写法:该方法在旧的基础认证环境下可用,但OAuth场景下会出现无法写入内容的问题。 - 确保使用最新版EWS Managed API(2.2及以上):旧版本对OAuth的支持存在缺陷,可能导致此类异常。
- 你的权限配置已满足需求,无需额外调整。
内容的提问来源于stack exchange,提问作者Maxime V
相关产品推荐
相关产品推荐

