C# 在混合Exchange版本上使用EWS API时出现问题

C# 在混合Exchange版本上使用EWS API时出现问题,c#,exchangewebservices,C#,Exchangewebservices,我有一个使用EWS API的应用程序。有些计算机使用Exchange 2003,有些计算机使用2007/2010。最初,在我的应用程序中,我只使用了: ExchangeService service = new ExchangeService(); service.UseDefaultCredentials = true; service.AutodiscoverUrl(url); 但我很快发现,在使用2003的计算机上,该操作失败,错误为:“客户端邮箱必须位于Exchange Server

我有一个使用EWS API的应用程序。有些计算机使用Exchange 2003,有些计算机使用2007/2010。最初,在我的应用程序中,我只使用了:

ExchangeService service = new ExchangeService();
service.UseDefaultCredentials = true;
service.AutodiscoverUrl(url);
但我很快发现,在使用2003的计算机上,该操作失败,错误为:“客户端邮箱必须位于Exchange Server 2010或更高版本上”。 因此,我将代码更改为(显然删除了Exchange服务器的实际地址):

现在我得到了错误:“请求的邮箱不支持指定的RequestServerVersion。”

所以,我想我理解为什么会发生这种情况,而且我真的觉得我必须做一些完全不同的事情才能在2003年起作用。除了不使用Net.mailapi之外,我不知道该怎么做。我是否仍然可以使用EWS API?如果可以,我需要做哪些更改才能使其同时在这两个平台上工作?

Exchange 2003(2000?)使用不同的API,这与EWS完全不同。Exchange2007支持这两种API

您可以使用CDO

或者WebDAV



我认为最好使用
新的ExchangeService(ExchangeVersion.Exchange2007\u SP1)
,然后您可以确定它与2007兼容,并在2010年使用向后兼容。

EWS是在Exchange2007中引入的,所以我不会与2003兼容。我想在我们建议您使用哪种API之前,您必须告诉我们您正在尝试完成什么。我希望能够从此应用程序发送电子邮件。这里有些计算机使用Exchange2007,有些使用2003。我已经在2007年开始工作了。为了让它在2003年使用,我应该只使用Net.mailapi还是有其他更好的方法?
ExchangeService service = new ExchangeService();
service.UseDefaultCredentials = true;
service.Url = new Uri("https://.....");