2012-07-06 73 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旁邊的其他域中測試此功能?