Обновление до O365 сломало EWS Autodiscover
Моя компания только что перенесла несколько почтовых ящиков в 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 ответ
Решение
- 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; }