2012-07-06 74 views
0

如果我做了以下EWS自动发现不可接受的超时

var autodiscoverService = new AutodiscoverService{ 
    // Timeout = 100, // Appears to have no impact 
    EnableScpLookup = false, 
    RedirectionUrlValidationCallback = 
     delegate { return true; }, 
    PreAuthenticate = true, 
    TraceEnabled = true, 
    TraceFlags = TraceFlags.All, 
    TraceListener = listener, 
    Credentials = 
     new WebCredentials("[email protected]", "anything", null) 
}; 

的第一个跟踪消息我得到的是:

<Trace Tag="AutodiscoverConfiguration" Tid="19" Time="2012-07-06 16:05:09Z"> 
    Determining which endpoints are enabled for host microsoft.com 
</Trace> 

注意时间(:09)。下一个事件是~40秒后:

<Trace Tag="AutodiscoverConfiguration" Tid="19" Time="2012-07-06 16:05:51Z"> 
    Determining which endpoints are enabled for host autodiscover.microsoft.com 
</Trace> 

此后很快(如预期的,auth失败)。

如果我在https://www.testexchangeconnectivity.com/上使用Exchange连接测试仪,即使我使用无效的身份验证信息,我几乎立即就会收到答案。

我没有一个有效的MS帐户进行测试,但我要求一个人测试它,即使使用其有效的用户名/密码,他们也会看到相同的40秒超时。

发誓就在几个星期前,我测试了这个,并没有看到任何问题与微软的自动发现设置;我怀疑最近有什么变化。

尽管此问题使用microsoft.com作为示例,但恐怕可能存在其他配置不良的Exchange设置,这会给此延迟并导致我的用户感到厌倦。

我试过设置autodiscoverService.Timeout = 100,这并没有帮助。

有什么办法可以对EWS的自动发现功能有更精细的控制吗?

我还能如何解决/解决这个问题?

回答

0

我认为问题在于域名“microsoft.com”没有在期望的庄园中实现自动发现。结果,自动发现服务尝试每个可能的端点并最终失败。

我用我的电子邮件地址/凭证试过了您的代码,并根据MS在AutodiscoverService.GetUserSettings Method提供的示例发出了GetUserSettings请求。

我同时使用onprem Exchange和Office 365测试使用onprem Exchange在大约2秒内完成,Office 365使用7秒开始完成。

然后,我改变了我的代码,使用您使用的电子邮件地址/凭据,我看到相同的40超时。

您是否尝试过在microsoft.com旁边的其他域中测试此功能?