exchangewebservices之收到无效的 XML 作为 EWS 调用的响应

thcjp 阅读:54 2024-11-24 20:56:43 评论:0

正在使用 EWS API 连接 Exchange 服务器。连接已建立,但我没有收到任何响应。

出现异常“从服务收到的响应不包含有效的 XML。”

内部异常是“此 XML 文档中禁止使用 DTD”。

我没明白什么是 DTD?

请您参考如下方法:

我一直在解决你的问题,直到(经过多次试验和错误):

  1. 将 TraceEnabled 设置为 true,这会将来回消息转储到控制台。

  2. 我使用了 URL https://yourexchangeserver/EWS/Exchange.asmx
    例如我的工作在亚太地区使用 BPOS,所以:https://red003.mail.apac.microsoftonline.com/EWS/Exchange.asmx

  3. 请求特定的服务版本,例如ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1)

第 1 步让我解决了您的第一个问题 - 它提供了 Outlook Web Access html 页面。
第 2 步让我看到它当时正在请求 2010_Sp1,但该版本不受支持。
第 3 步让“Hello world”工作/发送。

另外请注意,如果您使用该服务器,我无法让它采用除 2007 SP1 以外的任何版本,因此,没有 URL 的自动发现。

public static string sendMail_BPOS_EWS() 
        { 
              try 
            { 
                ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 
                service.UseDefaultCredentials = false; 
                service.Credentials = new WebCredentials("some_address@server.com", "password"); 
 
                service.Url = new Uri("https://red003.mail.apac.microsoftonline.com/EWS/Exchange.asmx"); 
                Console.WriteLine(service.Url); 
 
                service.TraceEnabled = true; 
 
                EmailMessage mail = new EmailMessage(service); 
                mail.From = new EmailAddress("from_address@server.com"); 
                mail.ToRecipients.Add("to_address@server.com"); 
                mail.Subject = "Email Subject"; 
                mail.Body = "Email Body"; 
 
                mail.Send(); 
                return "sent"; 
            } 
            catch (Exception ex) 
            { 
                return ex.ToString(); 
            } 
        } 


标签:webService
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号