EWS无法找到自动发现服务

本文关键字:发现 服务 EWS | 更新日期: 2023-09-27 18:01:47

我使用c# EWS (ExchangeWebServices)。
我有ExchangeServer,即以下IP: 10.81.5.1。
现在,我正试图访问ExchangeServer,如下所示:

 ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
 service.Credentials = new WebCredentials("myuser", "mypassword", "10.81.5.1");
 service.TraceEnabled = true;
 service.TraceFlags = TraceFlags.All;
 service.AutodiscoverUrl("myuser@mydomain.local", RedirectionUrlValidationCallback);//Throw an exception

我得到了以下异常:

无法找到自动发现服务。

我如何知道我的ExchangeServer域?

当我更改以下(并在ExchangeServer机器中运行代码)

service.Credentials = new WebCredentials("myuser", "mypassword");

意思是域是本地主机,我成功地运行我的代码,没有例外。

我的代码有什么错误?

我需要写的,而不是"10.81.5.1",如果我没有在ExchangeServer机器内运行代码?我如何知道我的ExchangeServer"域"?

谢谢。

EWS无法找到自动发现服务

我的问题的原因是交换服务器和我的开发机器不在同一个域中。
通过删除以下行解决:

 service.AutodiscoverUrl("myuser@mydomain.local", RedirectionUrlValidationCallback);//Throw an exception

并添加.asmx EWS的uri:

service.Url = new Uri("https://IP/EWS/Exchange.asmx");

以下3行对我有用:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new WebCredentials("<loginID..not email address>", "< the pw>");
service.AutodiscoverUrl("<your emailaddress>",RedirectionUrlValidationCallback);

如果登录id为abc123。这就够了。我需要指定域

在我的机器(win7)上,我可以在这里找到它:控制面板-系统-计算机名称,域和工作组设置。也许你可以试一试。