C # EWS в Exchange AutodiscoverUrl исключение при использовании версии 2010 или последней

#exchange-server #exchangewebservices #exchange-server-2010

#exchange-сервер #exchangewebservices #exchange-server-2010

Вопрос:

у a было успешное соединение с ExchangeVersion.Exchange2007_SP1, когда я изменил его на 2010 или последнюю версию, я получаю исключение в этой строке:

Обслуживание.AutodiscoverUrl (MailboxToAccess, RedirectionUrlValidationCallback); -> System.NullReferenceException: ‘Ссылка на объект не установлена для экземпляра объекта.’ Я пробовал с пакетами: Exchange.Веб-сервисы.Управляемый.Api v2.2.1.2 и Microsoft.Обмен.WebServices v2.2.0

 static void Main(string[] args)
        {
            String MailboxToAccess = "username@domain";
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
            SearchFilter sfSearchFilter = new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false);

            service.Credentials = new WebCredential("username@domain", "password");
            service.AutodiscoverUrl(MailboxToAccess, RedirectionUrlValidationCallback);

            SetStreamingNotifications(service);
        }
 
  private static bool RedirectionUrlValidationCallback(string redirectionUrl)
        {
            bool result = false;

            Uri redirectionUri = new Uri(redirectionUrl);
            if (redirectionUri.Scheme == "https")
            {
                result = true;
            }
            return resu<
        }
 

Ответ №1:

Я установил URL-адрес службы Exchange вручную, используя

 / Create the binding.
ExchangeService service = new ExchangeService();
// Set the credentials for the on-premises server.
service.Credentials = new WebCredentials("user1@contoso.com", "password");
// Set the URL.
service.Url = new Uri("https://computername.domain.contoso.com/EWS/Exchange.asmx");
 

Я до сих пор не понимаю, почему это не сработало для меня с

 service.AutodiscoverUrl("User1@contoso.com");