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?
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:
new ExchangeService()
correspond à celle du serveur.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
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!
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:
autodiscover.domain.com
.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.
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 ....
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.
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
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é".
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.
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