web-dev-qa-db-fra.com

"Impossible de localiser le service de découverte automatique" lors de la tentative d'accès à un compte Exchange 2010 avec l'API EWS MANAGED

J'utilise l'URL du service de découverte automatique pour une adresse électronique spécifiée.

ExchangeService Service = new ExchangeService(ExchangeVersion.Exchange2010);
Service.Credentials = new WebCredentials("[email protected]", "Password");
Service.AutodiscoverUrl("[email protected]");
Folder inbox = Folder.Bind(Service, WellKnownFolderName.Inbox);
Console.WriteLine("The folder name is" + inbox.DisplayName.ToString());

Si j'aime ça, j'obtiens une erreur:

Le service de découverte automatique est introuvable

Qu'est-ce que je dois faire pour éviter cette erreur?

29
user1891567

Vous vous êtes trompé sur Service.Credentials, utilisez-le comme ceci:

Service.Credentials = new WebCredentials(username, password, domainname);

Utilisation des informations d'identification du domaine, pas de l'adresse électronique.

Vérifiez également les points suivants:

  1. La version que vous spécifiez dans new ExchangeService() correspond à celle du serveur.
  2. le paramètre passé à Service.AutodiscoverUrl(); est correct (adresse électronique dont les données doivent être extraites)

Ce qui suit fonctionne pour moi (dans une nouvelle application console):

// Tweaked to match server version
ExchangeService Service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

// Dummy but realistic credentials provided below
Service.Credentials = new WebCredentials("john", "12345678", "MYDOMAIN");
Service.AutodiscoverUrl("[email protected]");
Folder inbox = Folder.Bind(Service, WellKnownFolderName.Inbox);
Console.WriteLine("The folder name is " + inbox.DisplayName.ToString());

//Console output follows (IT localized environment, 'Posta in arrivo' = 'Inbox')
> The folder name is Posta in arrivo
32
Alex

Permettez-moi de souligner que si vous essayez d'accéder à Office 365, les informations d'identification Web ont réellement la forme WebCredentials (strUsername, strPassword); strUsername étant l'adresse électronique du compte auquel vous essayez d'accéder.

J'avais cette erreur et il s'est avéré que quelqu'un avait changé le mot de passe du compte sans m'en informer! Quelle étrange erreur à obtenir quand c'est juste un mauvais mot de passe!

17
user3531993

Je vais vous recommander d'activer Traces, pour y parvenir:

     Service.TraceEnabled = true;

Je faisais face au même problème, puis, quand j’ai activé les traces, ces traces vous guideront sur ce qui se passe exactement. Dans mon cas, le problème de certificat SSL est là pour le résoudre, je l’ai suivi après post

Il peut y avoir beaucoup de problèmes tels que:

  • L'utilisateur peut être bloqué.
  • Le DNS ne trouve pas autodiscover.domain.com.
9
nitesh.kodle123

Pour l'enregistrement de l'exhaustivité:

Nous nous sommes heurtés à un service qui s’arrêtait soudainement avec cette erreur particulière ... Le service fonctionnant sans surveillance depuis des mois et utilisant EWS pour surveiller une boîte aux lettres, il s’est avéré que le mot de passe avait expiré. Cela a entraîné l'échec de la découverte automatique avec la même exception:

Le service de découverte automatique est introuvable

La mise à jour du mot de passe de l'utilisateur Exchange dans l'AD et la vérification de sa propriété Password Never Expires ont résolu le problème.

8
Gigabyte

essayez d'utiliser ceci:

Service.Credentials = new WebCredentials("john", "12345678", "MYDOMAIN");

Pas celui-ci

Service.Credentials = new WebCredentials("[email protected]", "12345678", "MYDOMAIN");

remarquez que le nom d’utilisateur est 'john' NOT '[email protected]', il m’a bloqué pendant quelques heures pour utiliser le second ....

7
cenday

Vérifiez si le mot de passe pour cet email a expiré. 

Si le mot de passe a expiré, vous recevez cette erreur d'AutoDiscover.

6
Carlos ABS

Je vous recommande de vérifier que la découverte automatique est réellement configurée dans DNS. L'article suivant explique comment le configurer plus en détail et vous explique également comment le tester avec l'analyseur de connectivité distant Microsoft . http://www.petri.co.il/autodiscover-configuration-exchange- 2010.htm

3
cmchenry

J'ai utilisé Url = new Uri("https://Outlook.office365.com/EWS/Exchange.asmx") direct et cela a fonctionné pour moi. Vous pouvez essayer d’utiliser Fiddler et eM Client pour voir comment ils utilisent EWS Manged API pour exécuter des tâches et répliquer des appels.

2
Dzmitry Lahoda

Face à ce problème pour un utilisateur spécifique. Après vérification, j'ai constaté que l'utilisateur avait activé l'authentification à deux facteurs et son mot de passe principal pour la connexion. Résolu en générant un mot de passe spécifique à l'application et en s'y connectant. Désactiver deux facteurs a également fonctionné, mais il faudra un certain temps pour y réfléchir. Pas sûr de savoir pourquoi l'échange a donné "Le service de découverte automatique n'a pas pu être localisé." au lieu de "non autorisé".

0
Priyank Kotiyal

J'ai rencontré le même problème avec Exchange 2013. Dans mon cas, la cause en était une déclaration de proxy par défaut dans mon fichier de configuration, ce qui empêchait probablement le service de découverte automatique de fonctionner correctement.

<system.net>
    <defaultProxy enabled="true">
      <proxy proxyaddress="http://localhost:8888" bypassonlocal="False"/>
    </defaultProxy>
</system.net>

Après avoir commenté la balise <defaultProxy>, autodiscover a pu trouver l'URL du service.

0
Vasile Tomoiaga

J'ai frappé ceci et une trace montre qu'après avoir utilisé le proxy pour accéder à 365, il lance une recherche DNS pour un enregistrement SVC . Cette recherche va au DNS interne et non au proxy, notre DNS interne ne résout pas les entrées DNS externes c'est pourquoi nous avons des serveurs proxy . Nous n'avons pas encore compris pourquoi il effectue une recherche DNS plutôt que d'utiliser les serveurs proxy, mais c'est ce qui cause notre version de ce problème

0
Chris Lee