Обновление до O365 сломало EWS Autodiscover - PullRequest
0 голосов
/ 29 июня 2018

Моя компания только что перенесла несколько почтовых ящиков в O365. Это привело к неудачному разрушению приложения, созданного с использованием EWS. При попытке вызвать AutodiscoverUrl () я столкнулся с ошибкой.

'Не удалось найти службу автообнаружения.'

Код:

        service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
        service.UseDefaultCredentials = true;
        service.AutodiscoverUrl(mailbox, RedirectionCallback);

        private bool RedirectionCallback(string url)
        {
            return true; 
        }

Я также попытался установить следующий URL

service.Url = new Uri("https://autodiscover.MYDOMAIN.com/autodiscover/autodiscover.xml");
service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");

Ни один из них не решил проблему. Кто-нибудь знает, куда идти отсюда?

1 Ответ

0 голосов
/ 30 июня 2018
  • service.UseDefaultCredentials должен быть ложным, потому что вам нужен адрес электронной почты + пароль (в качестве безопасной строки) для подключения
  • использовать последнее значение ExchangeVersion
  • URL-адрес https://outlook.office365.com/EWS/Exchange.asmx

    public ExchangeService Connect()
    {
        var lastExchangeVersion = Enum.GetValues(typeof(ExchangeVersion)).Cast<ExchangeVersion>().ToList().Last();
        var service = new ExchangeService(lastExchangeVersion)
        {
            Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx"),
            Credentials = new NetworkCredential(_cloudEmail, _cloudPassword)
        };
        return service;
    }
    public SecureString ConvertStringToSecure(string password)
    {
        if (string.IsNullOrWhiteSpace(password)) return null;
        var result = new SecureString();
        foreach (char c in password) result.AppendChar(c);
        return result;
    }
    
...