Gestion des messages d’erreur de découverte automatiqueHandling Autodiscover error messages

Découvrez les différents types d’erreurs de découverte automatique et que faire avec eux.Learn about the different types of Autodiscover errors and what to do with them.

Découverte automatique permet à vos applications récupérer les informations de configuration automatiquement, et il fonctionne très.Autodiscover enables your applications to retrieve configuration information automatically, and it works great. Toutefois, tout ne se passe toujours en fonction du plan.However, things don't always go according to plan. Examinons les erreurs courants qui peuvent se produire et comment vous pouvez gérer les afin de réduire la nécessité d’inviter l’utilisateur à configurer manuellement votre client.Let's look at the common errors that might occur and how you can handle them to minimize the need to prompt your user to manually configure your client.

Erreurs d’état HTTPHTTP status errors

Le premier type d’erreur que vous pouvez rencontrer lors de l’envoi de demandes de découverte automatique est l’état HTTP.The first type of error you might encounter when sending Autodiscover requests is the HTTP status. Si l’état HTTP dans votre réponse n’est pas 200 (OK), la charge utile de réponse ne contient pas la réponse de découverte automatique que vous recherchez.If the HTTP status in your response is anything other than 200 (OK), the response payload doesn't contain the Autodiscover response you were looking for. Par souci de simplicité, nous pouvons grouper les codes d’état non 200 en trois catégories.For simplicity, we can group non-200 status codes into three categories.

Le tableau 1. Codes d’état HTTPTable 1. HTTP status codes

Code d’étatStatus code Type d’erreurType of error Pour gérer...To handle…
301 ou 302301 or 302
Erreur de redirectionRedirect error
Renvoyer votre demande à l’URI contenue dans l’en-tête de réponse HTTP ligne « emplacement ».Resend your request to the URI contained in the "Location" HTTP response header. Pour plus d’informations, voir Gestion des erreurs de redirection.For details, see Handling redirect errors.
401401
Erreur non autoriséeUnauthorized error
Le processus de découverte automatique implique la tentative de plusieurs URL potentiels, vous pouvez obtenir cette sur une seule URL que suivant accepte vos informations d’identification.Because the Autodiscover process involves trying multiple potential URLs, you could get this on one URL only to have the next one accept your credentials. Pour cette raison, vous ne devez pas tenir compte une seule erreur 401 pour indiquer que les informations d’identification ne sont pas valides.For this reason, you shouldn't consider a single 401 error to indicate that the credentials are invalid. Toutefois, si vous recevez des 401 erreurs à partir de plusieurs URL, vous souhaiterez invite l’utilisateur à entrer de nouveau leur mot de passe (si possible).However, if you receive 401 errors from multiple URLs, you might want to prompt the user to reenter their password (if possible).
N’importe quel autre état non-200Any other non-200 status
Erreur de point de terminaison de découverte automatique non valideInvalid Autodiscover endpoint error
Prendre en compte l’URL qui renvoie un autre code d’état non 200 comme non valide et continue d’essayer de l’URL suivante dans votre liste.Consider the URL that returns any other non-200 status code to be invalid, and continue trying the next URL in your list.

Erreurs de découverte automatiqueAutodiscover errors

Même si vous obtenez un code d’état 200 (OK) après l’envoi d’une demande de découverte automatique, cela ne signifie pas que le serveur a envoyé les informations que nécessaires.Even if you get a 200 (OK) status code after sending an Autodiscover request, that doesn't mean that the server sent the information you need. L’état de 200 signifie simplement que vous avez une réponse de découverte automatique et réponse peut contenir une erreur dans la charge utile.The 200 status only means that you have an Autodiscover response, and that response might contain an error within the payload. L’emplacement des informations d’erreur diffère selon que le format est SOAP ou variole.The location of the error information differs depending on whether the format is SOAP or POX.

Erreurs de découverte automatique SOAPSOAP Autodiscover errors

Pour la découverte automatique SOAP, la réponse peut contenir un ou plusieurs éléments ErrorCode (SOAP) dans plusieurs emplacements.For SOAP Autodiscover, the response can contain one or more ErrorCode (SOAP) elements, in different places. En règle générale, vous pouvez tirer un élément enfant de l’élément de Réponse (SOAP) et un en tant qu’enfant de chaque élément de Réponse utilisateur (SOAP) dans la réponse.Typically you can expect one as a child element of the Response (SOAP) element, and one as a child of each UserResponse (SOAP) element in the response. Vous pouvez également rencontrer un en tant qu’enfant d’un élément UserSettingError (SOAP) , s’il est présent.You might also encounter one as a child of a UserSettingError (SOAP) element, if one is present. Le contexte de l’erreur dépend de l’élément ErrorCode situe, comme suit :The context of the error depends on where the ErrorCode element is located, as follows:

  • Élément enfant de l’élément de réponse , l’élément ErrorCode représente une erreur qui s’applique à l’ensemble de la demande.As a child element of the Response element, the ErrorCode element represents an error that applies to the entire request.

  • En tant qu’enfant de l’élément de réponse utilisateur , elle représente une erreur qui s’applique uniquement à un utilisateur spécifique.As a child of the UserResponse element, it represents an error that applies just to that specific user.

  • En tant qu’enfant d’un élément UserSettingError , il représente une erreur qui s’applique à un paramètre spécifique qui a été demandé.As a child of a UserSettingError element, it represents an error that applies to a specific setting that was requested.

Examinons un exemple d’une réponse.Let's take a look at an example of a response. Dans cet exemple, l’élément ErrorCode sous l’élément de réponse a une valeur de « NoError », ce qui indique la réussite.In this example, the ErrorCode element under the Response element has a value of "NoError", which indicates overall success. Toutefois, l’élément ErrorCode sous l’élément de réponse utilisateur a une valeur de « RedirectAddress », ce qui indique qu’une erreur s’est produite pour cet utilisateur spécifique.However, the ErrorCode element under the UserResponse element has a value of "RedirectAddress", which indicates that an error occurred for that particular user.

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:a="http://www.w3.org/2005/08/addressing">
  <s:Header>
    <a:Action s:mustUnderstand="1">http://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetUserSettingsResponse</a:Action>
    <h:ServerVersionInfo xmlns:h="http://schemas.microsoft.com/exchange/2010/Autodiscover" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
      <h:MajorVersion>14</h:MajorVersion>
      <h:MinorVersion>3</h:MinorVersion>
      <h:MajorBuildNumber>136</h:MajorBuildNumber>
      <h:MinorBuildNumber>1</h:MinorBuildNumber>
      <h:Version>Exchange2010_SP2</h:Version>
    </h:ServerVersionInfo>
  </s:Header>
  <s:Body>
    <GetUserSettingsResponseMessage xmlns="http://schemas.microsoft.com/exchange/2010/Autodiscover">
      <Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <ErrorCode>NoError</ErrorCode>
        <ErrorMessage />
        <UserResponses>
          <UserResponse>
            <ErrorCode>RedirectAddress</ErrorCode>
            <ErrorMessage>Redirection address.</ErrorMessage>
            <RedirectTarget>elvin@mail.contoso.com</RedirectTarget>
            <UserSettingErrors />
            <UserSettings />
          </UserResponse>
        </UserResponses>
      </Response>
    </GetUserSettingsResponseMessage>
  </s:Body>
</s:Envelope>

L’article ErrorCode (SOAP) contient une liste complète des erreurs possibles.The ErrorCode (SOAP) article contains a full list of possible errors. La plupart de ces indique une erreur irrécupérable, mais quelques justifient une gestion spéciale.Most of these indicate an unrecoverable error, but a few warrant special handling.

Le tableau 2. Valeurs Autodisover ErrorCode SOAPTable 2. SOAP Autodisover ErrorCode values

Valeur de code d’erreurErrorCode value Pour gérer...To handle…
RedirectAddressRedirectAddress
Le redémarrage de la découverte automatique avec une nouvelle adresse de messagerie avec l’adresse de messagerie dans l’élément RedirectTarget (SOAP) .Restarting Autodiscover with a new email address with the email address in the RedirectTarget (SOAP) element.
RedirectUrlRedirectUrl
Renvoi de votre demande vers une nouvelle URL à l’URL dans l’élément RedirectTarget .Resending your request to a new URL to the URL in the RedirectTarget element.
ServerBusyServerBusy
Réessayez cette URL après un court délai.Retry this URL after a small delay. Vous pouvez attendre un laps de temps ou simplement déplacer cette URL à la fin de la liste d’URL pour essayer.You might wait a set amount of time or simply move this URL to the end of your list of URLs to try. Si vous recevez cette erreur plusieurs fois à partir d’une URL, vous devez envisager l’URL non valide.If you receive this error multiple times from a URL, you should consider the URL to be invalid.

Erreurs de découverte automatique POXPOX Autodiscover errors

Le service de découverte automatique variole signale les erreurs un peu différemment.The POX Autodiscover service reports errors a little differently. Erreurs non récupérables sont contenues dans l’élément Erreur (POX) .Non-recoverable errors are contained in the Error (POX) element. L’article ErrorCode (POX) contient une liste complète des codes d’erreur possibles.The ErrorCode (POX) article contains a full list of possible error codes.

Erreurs de redirection sont contenues dans l’élément Action (POX) .Redirect errors are contained in the Action (POX) element. N’importe quelle valeur de l’élément Action autres que « paramètres » indique une erreur de redirection.Any value of the Action element other than "settings" indicates a redirect error.

Le tableau 3. Valeurs Autodisover ErrorCode POXTable 3. POX Autodisover ErrorCode values

Valeur d’actionAction value Pour gérer...To handle…
redirectAddrredirectAddr
Le redémarrage de la découverte automatique avec une nouvelle adresse de messagerie avec l’adresse de messagerie dans l’élément RedirectAddr (POX) .Restarting Autodiscover with a new email address with the email address in the RedirectAddr (POX) element.
redirectUrlredirectUrl
Renvoi de votre demande vers une nouvelle URL à l’URL dans l’élément RedirectUrl (POX) .Resending your request to a new URL to the URL in the RedirectUrl (POX) element.

Dans cet exemple, l’élément Action a la valeur « redirectAddr », ce qui indique qu’une nouvelle demande doit être envoyée avec la nouvelle adresse de messagerie contenue dans l’élément RedirectAddr .In this example, the Action element has a value of "redirectAddr", which indicates that a new request should be sent with the new email address contained in the RedirectAddr element.

<?xml version="1.0" encoding="utf-8"?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
  <Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
    <Account>
      <Action>redirectAddr</Action>
      <RedirectAddr>elvin@mail.contoso.com</RedirectAddr>
    </Account>
  </Response>
</Autodiscover>

Gestion des erreurs de redirectionHandling redirect errors

Vous pouvez gérer des scénarios de redirection d’erreur de deux manières :You can handle redirect error scenarios in two ways:

  • En redémarrant la découverte automatique avec une nouvelle adresse de messagerie.By restarting Autodiscover with a new email address.

  • Par le renvoi de votre demande vers une nouvelle URL.By resending your request to a new URL.

Les deux scénarios nécessitent une validation avant de continuer.Both scenarios require some validation before proceeding.

Redémarrage du service de découverte automatique avec une nouvelle adresse de messagerieRestarting Autodiscover with a new email address

Lorsque vous participez à une nouvelle adresse de messagerie une découverte automatique rediriger réponse, tout d’abord vérifier que la nouvelle adresse de messagerie qui a été fournie dans la réponse d’erreur de redirection n’est pas la même adresse que vous avez envoyé dans la demande qui a provoqué l’erreur.When you get a new email address in an Autodiscover redirect response, first verify that the new email address that was provided in the redirect error response is not the same address that you sent in the request that resulted in the error. Si tel est le cas, vous ne devez pas redémarrer le service de découverte automatique et prendre en compte à la place de l’URL qui a généré la réponse comme non valide.If it is, you should not restart Autodiscover and instead consider the URL that generated the response to be invalid.

Si la nouvelle adresse de messagerie est différente, annuler votre liste existante d’URL de point de terminaison de découverte automatique potentiels et générer une nouvelle liste en fonction de la nouvelle adresse de messagerie.If the new email address is different, discard your existing list of potential Autodiscover endpoint URLs and generate a new list based on the new email address.

Renvoi de votre demande vers une nouvelle URLResending your request to a new URL

Lorsque vous recevez une nouvelle URL dans une réponse de redirection de découverte automatique, vous devez tout d’abord valider l’URL comme suit :When you get a new URL in an Autodiscover redirect response, you should first validate the URL as follows:

  • Vérifiez que l’URL est une URL HTTPS.Verify that the URL is an HTTPS URL.

  • Vérifiez que vous n’avez pas reçu une erreur à partir de cette URL avec l’adresse de messagerie actuelle avant.Verify that you have not received an error from this URL with the current email address before.

  • Le cas échéant à votre application, informer l’utilisateur de la redirection et obtenez leur autorisation pour suivre la redirection.If applicable to your application, inform the user of the redirection and get their permission to follow the redirect.

  • Envoyer une requête à l’URL et Vérifiez que le certificat SSL présenté par le serveur est valid.Send a request to the URL and verify that the SSL certificate presented by the server is valid.

Si l’URL est validé, renvoyez la demande à cette nouvelle URL.If the URL passes validation, resend the request to this new URL.

Voir aussiSee also