ExchangeService(EWS)错误:The response received from the service didn't contain valid XML.

2 篇文章 0 订阅
在用ExchangeService(EWS)连接Exchange邮件服务器时,报错:
        The response received from the service didn't contain valid XML.
其InnerException为:
        The expected XML node type was XmlDeclaration, but the actual type is Element.

其源代码如下:
   
 //连接服务器
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
            service.Credentials = new NetworkCredential("***", "***", "***");
            service.AutodiscoverUrl("***");
               //获取邮件列表(收件箱中的邮件)
            FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox,new ItemView(10));
         
            foreach (Item item in findResults.Items)
            {
               
                //获取具体的邮件对象
                EmailMessage email = EmailMessage.Bind(service, item.Id);
                //判断附件是否为文件
                 if (!(email.Attachments[0] is FileAttachment)) continue;

                FileAttachment fileAttachment = email.Attachments[0] as FileAttachment;
                fileAttachment.Load("C:\\temp\\" + fileAttachment.Name);
                //标记为已读   
                email.IsRead = true;
                //将对邮件的改动提交到服务器   
                email.Update(ConflictResolutionMode.AlwaysOverwrite);
            }

查了一些资料,也没有找到具体的原因,自己尝试了好多方法,最终将代码更改如下:
       
 //连接服务器
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
            service.Credentials = new NetworkCredential("用户名", "密码", "域");
            service.AutodiscoverUrl("你的邮箱");
            service.Url = new Uri("这里是你的邮箱Service地址(以asmx结尾)");
               //获取邮件列表(收件箱中的邮件)
            FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox,new ItemView(10));
         
            foreach (Item item in findResults.Items)
            {
               
                //获取具体的邮件对象
                EmailMessage email = EmailMessage.Bind(service, item.Id);
                //判断附件是否为文件
                 if (!(email.Attachments[0] is FileAttachment)) continue;

                FileAttachment fileAttachment = email.Attachments[0] as FileAttachment;
                fileAttachment.Load("C:\\temp\\" + fileAttachment.Name);
                //标记为已读   
                email.IsRead = true;
                //将对邮件的改动提交到服务器   
                email.Update(ConflictResolutionMode.AlwaysOverwrite);
            }


这一次就能正常收取了,加入了URL问题就解决了,不知道这个是什么原因,我原来用第一段代码的时候,并没有加入Url也能够正常访问的,这个事情比较的奇怪。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值