在C#中连接到Exchange Server时,是否需要AutodiscoverUrl?

时间:2017-04-04 00:52:12

标签: c# exchange-server exchangewebservices

我正在编写一个Windows窗体应用程序来读取Exchange 2013服务器上的邮箱。此代码连接,我可以阅读电子邮件,但执行AutodiscoverUrl方法可能需要两分钟或更长时间。

exchange = new ExchangeService(ExchangeVersion.Exchange2013_SP1);  
exchange.Credentials = new WebCredentials("USERNAME", "PASSWORD", "DOMAIN");  
exchange.AutodiscoverUrl("USERNAME@DOMAIN", RedirectionUrlValidationCallback);

这一切都发生在我们的内部企业网络上。我是一家在我们的数据中心有几千台服务器的大公司,我想知道AutodiscoverUrl是否正在遍历我们所有的服务器,直到它找到我们的Exchange服务器?我知道Exchange服务器的名称;有没有办法只指定它并开车?

1 个答案:

答案 0 :(得分:0)

首先,有两种AutoDiscovery条目。内部的和外部的。根据您的环境(例如拆分DNS),不容易100%回答这应该是什么样子。当你从一个解决方案中成为开发人员时,你应该在这里与你的MS Exchange管理员交谈,因为以下内容对他来说更有意义。

可以使用Microsoft Remote Connectivity Analyzer轻松检查外部自动发现。

如果需要,您还可以使用Test-OutlookWebServices检查自动发现功能。

但是我认为一切都在起作用,而且一般都在起作用但不是快速的#34;足够。因此,您可以选择(而不是硬编码CAS服务器)来禁用自动发现过程中的某些步骤(有关更多信息,请参阅here)。因此,例如,如果您不需要根域检查,则可以通过ExcludeHttpsRootDomain禁用上述URL中所述的内容。但是,如上所述,这应该与您的Exchange管理员一起完成。原因在于,如果您禁用了一些必需的AutoDiscovery步骤,一旦Exchange管理员在此处执行更改,您可能会破坏解决方案。