Autodiscover Service - error

0

Mam aplikajcę która robi pewne operacje na kilku skrzynkach mailowych. Część z tych skrzynek znajduje się on prem, a część została zmigrowana na office365. Niestety na skrzynce która jest zmigorwana coś nie śmiga.
Za pomocą opcji outlooka Test Email Autoconfiguration robię Autodiscover skrzynki która wiem, że jest na o365.
W logu na początek dostaje
Status 401
A po chwili jest 200. I dostaje zwrotny adres serwera.
Wedle dokumnetacji jest to normalne zachowanie ponieważ on po kolei sprawdza sobie kolejne URL więc zachowanie poprawne.

Niestety w kodzie to nie działa :-(.
Mam coś takiego:

ExchangeService service2 = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
service2.UseDefaultCredentials = false;
service2.Credentials = new WebCredentials("myusername", "mypassword", "EU");
try {
service2.AutodiscoverUrl(mailboxname, RedirectionUrlValidationCallback);
 }
catch (Exception ex)
 {
      Console.WriteLine(ex.ToString());
 }
           
return service2;

W momencie autodiscover to mieli kilka sekund i zwraca
The expected XML node type was XmlDeclaration, but the actual type is Element..

Internety podpowiadają że serwis jest albo niedostępny albo bardzo obciążony. Niestety nie rozumiem tego do końca jeśli ten outlookowy autodiscover śmiga.
Coś mi mówi, ze może dlatego, że najpierw zwraca 401 a potem 200 i ten c# autodiscover się coś... psuje.

Będę wdzięczny za pomoc.

0

hej

takie pytanie na start.. piszesz ze używasz skrzynki do aplikacji.. a po co Ci Autodiscover Service ? do przeglądania skrzynek ?

0

Zawsze jak pada pytanie w tym stylu to wydaje mi się, że czegoś ostro nie rozumiem :D.

Jest to aplikacja konsolowa która jako parametr przyjmuje adres mailowy, i apka bierze ten adres i szuka dla niej odpowiedniego serwera URL.
Niestety mam kilka serwerów on prem i część skrzynek jest na o365. Więc moje rozumowanie było takie, że zamiast wszystkie nazwy serwera hardcodować to mogę używać Autodiscover który powinien mi dla wybranego adresu zwrócić mi URL serwera.

To chyba nie ma znaczenia ale apka zlicza maile, odpowiedzi i takie tam różne.

Pozdrawiam

0

ok rozumiem ze masz klika serwerów z rola CA ale usługa Autodiscover Service ma za zadanie wyszukać serwer dane i ustawić paramenty outlook'a. Jak masz DAG'a Exchange 2010 to podajesz nazwę z DNS'a wspólna czyli LB

0

Wybacz, ale nierozumiem niektórych skrótów CA, DAG LB?

Trochę poczytałem na stronie microsoft o usłudze Autodiscover.
W swojej aplikajci (kod powyżej) używam jej tylko do uzyskanie EndPoint URL dla wybranej skrzynki.
Moje rozumowanie tutaj jest następujące. Apki nie powinno interesować czy skrzynka jest na serwerze X, Y, Z (online/on prem). Więc podając nazwę skrzynki powinienem dostać z powrotem endpoint do którego się zaloguje.

Nie do końca rozumiem jak to działa na outlooku ale wydaje mi się, że nie ważne czy robię autodiscover za pomocą outlook czy w kodzie za pomocą biblioteki ExchangeService. To podająć mailbox zwraca mi ten endpoint.
I problem w tym, że apce dostaje exception jak powyżej, a przez outlooka najpierw zwraca 401 a potem 200.

Sorki jeśli mocno to zakręciłem.

0

Hej

zatem rozwijam skróty

Wspominasz ze masz kilka serwerów pocztowych zatem na 99% zbudowanego DAG'a
https://practical365.com/exchange-server-2010-database-availability-group-installation-step-by-step/

Jak masz klika serwerow Client access to sie tworzy LB (load balancing) pomiędzy nimi. W Serwerach DNS wszystkich te sewery wtedy dodaje jest pod wspólną nazwa i to jest to samo co Autodiscover te sam adres.

Teraz wystarczy ze Twój program będzie kierował zapytanie do nazwy LB czyli wspólnej dla wszystkich CA. Autodiscover jest Ci do pobierania, wysyłania maila ze skrzynki nie potrzebne

0

dziękuję :). Teraz rozumiem ogólny kocept.

Nie mniej. czytając dokumentację ja nie mogę wybrać gdzie celuje ten swój autodiscover. Sprawdzając
https://docs.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/gg274406(v=exchg.80)

też nie ma nic o podawaniu konkretngo serwera. To ma działać jakoś samo.
Niestety jednak nie pyka ;/.

Jedyny mój pomysł jest taki, że może coś się zmieniło na FireWallu i na skrzynek onPrem działa, ale jak musi już wyjśc na tego o365 to się wywala.
eh.. zgadaki zagadki.

Dziękuję za pomoc i podzieleni się wiedzę :).

1 użytkowników online, w tym zalogowanych: 0, gości: 1