Ceci est mon scénario: je dois lire les courriels des comptes SP2 Exchange 2010. Je dois utiliser Exchange Web Services, POP3 et IMAP sont bloqués. Je dois tester mon application dans un environnement où les personnes peuvent accéder à leurs comptes via un navigateur Web uniquement dans l'intranet. Je ne peux pas déboguer mon application directement à cet intranet. J'ai cet extrait pour accéder à un compte: si j'utilise cette ligne: p> i obtenir cette erreur: p>
6 Réponses :
En quelque sorte, vous devez vous connecter le résultat de ce que Comme vous ne pouvez pas déboguer de l'application, vous pouvez peut-être envoyer un courrier électronique à vous-même, vous connecter à un dB ou un fichier partagé, ou peut-être utiliser le journal des événements app ( lancer une exception d'application em>). p>
Voir aussi voir En conséquence, post sur Exchange AutoDiscovery et Validant une URL de redirection potentiellement dangereuse sur MSDN . P> redirectionURL code> est. Vous obtiendrez cette erreur lorsque votre
redirectionURL code> ne correspond pas à l'URI que vous avez spécifié ( i.e. Votre appel de validation AutoDiscover renvoie
false em> em>). Certes, le
redirectionURL code> URI n'est pas ce que vous pensez que c'est. Si vous utilisez SSL - vous devez gérer le rappel de la validation de redirection. P>
https://autodiscover.colpatria.com/autodiscover/autoDiscover.xml code>. Si cela remplacer la chaîne existante
https://autodiscover-.outlook.com/autodiscover/autodiscover.xml code>? P>
Après avoir rencontré des problèmes similaires récemment et travailler pour les résoudre, j'ai découvert un utilitaire / est très utile dans le dépannage: EWS Editeur Cela peut ne pas résoudre vos problèmes, mais peut être utilisé pour itérer très rapidement des combinaisons de configuration différentes, ce qui, espérons-le, je verront une lumière sur vos problèmes. P>
J'ai utilisé cette application lorsque vous travaillez avec un client pour établir des connexions AutoDiscover et URL de service aux serveurs Exchange de test et de produits. C'était pratique non seulement pour moi, mais également le personnel informatique du client. Ils ont téléchargé et utilisé l'utilitaire pour tester et vérifier leurs paramètres. P>
de http://ewseditor.codeplex.com : p>
ewseditor a trois objectifs: p>
Démontrez la fonctionnalité de l'API gérée et la simplicité gérées aux développeurs à travers son code source. p> li>
Démontrez le trafic SOAP d'Exchange Web Services utilisée pour effectuer des actions initiées via une interface utilisateur exploratrice. p> li>
Assister les non-développeurs dans le débogage et la compréhension des magasins d'échange en explorant les articles, les dossiers et leurs propriétés en profondeur p> li>
ol>
Ceci est un ancien poste, je pensais que je mets dans une solution d'exemple complète pour l'erreur rapportée. Il suffit de remplacer voici le bloc complet du code P> ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.Credentials = new WebCredentials("someuser", "somepassword");
//service.AutodiscoverUrl("someuser@somedomain.org");
service.Url = new System.Uri("https://mail.somedomain.org/ews/Exchange.asmx");
essayer wfm. Dans mon cas, je devais configurer SSL / TLS en installant un certificat à partir du serveur Exchange sur la machine cliente. J'ai été conduit à cette solution à partir de la sortie de la trace. P> service.traceenabled = true; code> p>
Cela fonctionne comme un charme pour moi:
static bool RedirectionCallback(string url) { // Return true if the URL is an HTTPS URL. return url.ToLower().StartsWith("https://"); }
Lorsque vous avez utilisé AutoDiscoverurl () avec RedirectionURLValidationCallback, voici un exemple de code:
static bool RedirectionCallback(string url) { bool redirectionValidated = false; Uri redirectionUri = new Uri(url); //There are two ways of implementing a RedirectionCallback scheme // Way 1: Return true if the URL is an HTTPS URL. //return url.ToLower().StartsWith("https://"); if (redirectionUri.Scheme == "https") redirectionValidated = true; //Way 2: check if url is autodiscovery url if (url.Equals( "https://autodiscover-s.outlook.com/autodiscover/autodiscover.xml")) redirectionValidated = true; return redirectionValidated; }
Je suis sûr que vous avez trouvé un chemin à propos de cette question d'un an, je veux simplement ajouter que l'utilisation de Calling
autodiscoverurl code> n'est pas le seul moyen de se connecter avec des CRS. La définition plutôt que l'URL directement vous-même pourrait être une alternative viable. Exemple:
service.url = nouveau URI ("https: //your_exchange_server/ews/exchange.asmx"); code>
Hardcoding le service.url n'est pas la bonne façon !! Nous utilisons AutoDiscover à des fins. Cela nous permet de ne pas vous inquiéter si l'utilisateur est sur place ou Office365. L'URL EWS EndPoint sera définie comme service.url automatiquement.