2016-03-17 3 views
-1

Привет, я сильно застрял в этой проблеме, обращаясь к почтовому ящику Office 365 для почтовых ящиков с использованием EWS API. Я использую задачу сценария пакета SSIS для запуска кода для подключения к mailID в Office365, но он просто случайно сбой или выполняется успешно. я реализовал его, как показано нижеПочему доступ к почтовому ящику через Exchange Web Service EWS API не выполняется случайно?

protected void ConnectToExchangeServer(string emailID, stringpassword) 
{ 
    ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack; 

    exchange = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 
    //exchange.Credentials = new WebCredentials("USERNAME", "PASSWORD", "DOMAIN"); 

    exchange.Credentials = new WebCredentials(emailID, password); 

    //Hair splitting problem here in autodiscoverurl, sometimes runs successfully , 
    //connects to inbox and reads mail and sometimes fails randomly 
    //throwing error Autodiscover could not find location. 

    exchange.AutodiscoverUrl(emailID, RedirectionUrlValidationCallback); 

    //exchange.Credentials = new WebCredentials("USERNAME", "PASSWORD", "DOMAIN"); 

    //exchange.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx"); 

} 

    private static bool RedirectionUrlValidationCallback(){...} 

    private static bool CertificateValidationCallBack(object sender, 
     System.Security.Cryptography.X509Certificates.X509Certificate certificate, 
     System.Security.Cryptography.X509Certificates.X509Chain chain, 
     System.Net.Security.SslPolicyErrors sslPolicyErrors){..} 

Что может быть причиной этой проблемы? У меня нет знаний сетевого администрирования, поэтому, пожалуйста, расскажите мне, как проверить проблему, когда мой запрос отклоняется randonly?

ответ

0

Возможно ли, что вы получаете что-то вроде «Служба автообнаружения не может быть найдена?» К сожалению, это ошибка, которая может замаскировать основную ошибку. Если это прерывисто, то одни и те же SMTP + учетные данные работают иногда, а не другие, тогда это может быть ситуация с тайм-аутом. Или, если вы на самом деле вызываете эту же функцию по нескольким потокам в вашей программе, как только вы получите примерно 20 одновременных вызовов, EWS начнет дросселировать вас с временными ошибками.

Единственный способ узнать, что происходит, это включить трассировку в объекте ExchangeService и определить обработчик для печати XML, который выходит из шагов вызова AutodiscoverUrl. Достаточно легко найти, как в Интернете, и не так уж плохо добавить. Хорошо, что можно динамически включить, если это будет производственное приложение.

Смежные вопросы