Behandeln von AutoErmittlungs-Fehlermeldungen

Erfahren Sie mehr über die unterschiedlichen Arten von Fehlern bei der AutoErmittlung und wie damit umzugehen ist.

Die AutoErmittlung ermöglicht Ihren Anwendungen, automatisch Konfigurationsinformationen abzurufen, und sie funktioniert hervorragend. Aber die Dinge verlaufen nicht immer nach Plan. Lassen Sie uns die typischen Fehler ansehen, die auftreten können, und wie Sie mit diesen umgehen können, um die Notwendigkeit zu minimieren, Ihre Benutzer aufzufordern, Ihren Client manuell zu konfigurieren.

HTTP-Statusfehler

Die erste Art von Fehler, die beim Senden von AutoErmittlungsanforderungen auftreten kann, betrifft den HTTP-Status. Wenn der HTTP-Status in Ihrer Antwort nicht 200 (OK) ist, enthält die Antwortnutzlast nicht die AutoErmittlungsantwort, nach der Sie gesucht haben. Der Einfachheit halber können wir andere Statuscodes als 200 in drei Kategorien gruppieren.

Tabelle 1. HTTP-Statuscodes

Statuscode Fehlertyp Behandlung
301 oder 302
Umleitungsfehler
Senden Sie Ihre Anforderung erneut an den URI, der im HTTP-Antwortheader „Location“ enthalten ist. Weitere Informationen finden Sie unter Behandlung von Umleitungsfehlern.
401
Fehler „Nicht autorisiert“
Da der AutoErmittlungs-Prozess das Ausprobieren mehrerer potenzieller URLs umfasst, könnte dieser Fehler bei einer URL lediglich deswegen angezeigt werden, dass Ihre Anmeldeinformationen bei der nächsten akzeptiert werden. Aus diesem Grund sollten Sie bei einem einzigen 401-Fehler nicht davon ausgehen, dass die Anmeldeinformationen ungültig sind. Wenn Sie jedoch von mehreren URLs 401-Fehler erhalten, sollten Sie den Benutzer vielleicht auffordern, sein Kennwort (falls möglich) erneut einzugeben.
Alle anderen Nicht-200-Status
Fehler „Ungültiger AutoErmittlungs-Endpunkt“
Gehen Sie davon aus, dass die URL, bei der andere Nicht-200-Statuscodes zurückgegeben werden, ungültig ist, und fahren Sie mit der nächsten URL in Ihrer Liste fort.

AutoErmittlungsfehler

Auch wenn Sie nach dem Senden einer AutoErmittlungsanforderung den Statuscode 200 (OK) erhalten, bedeutet das nicht, dass der Server die Informationen gesendet hat, die Sie benötigen. Der Status 200 bedeutet nur, dass Sie eine Antwort der AutoErmittlung haben, und diese Antwort kann einen Fehler in der Nutzlast enthalten. Der Standort der Fehlerinformationen ist unterschiedlich, je nachdem, ob das Format SOAP oder POX ist.

SOAP-AutoErmittlungs-Fehler

Für die SOAP-AutoErmittlung kann die Antwort ein oder mehrere ErrorCode (SOAP)-Elemente an unterschiedlichen Stellen enthalten. In der Regel ist eines ein untergeordnetes Element des Response (SOAP)-Elements und eines ein untergeordnetes Element der einzelnen UserResponse (SOAP)-Elemente in der Antwort. Vielleicht tritt eines auch als untergeordnetes Element eines UserSettingError (SOAP)-Elements auf, falls vorhanden. Der Kontext des Fehlercodes ist davon abhängig, wo sich das ErrorCode-Element befindet:

  • Das ErrorCode-Element stellt als untergeordnetes Element des Response-Elements einen Fehler dar, der für die gesamte Anforderung gilt.

  • Als untergeordnetes Element des UserResponse-Elements stellt es einen Fehler dar, der nur für diesen bestimmten Benutzer gilt.

  • Als untergeordnetes Element des Elements UserSettingError stellt es einen Fehler dar, der für eine bestimmte Einstellung gilt, die angefordert wurde.

Lassen Sie uns einen Blick auf ein Beispiel für eine Antwort werfen. In diesem Beispiel wird hat das Element ErrorCode unter dem Element Response den Wert „NoError“, was auf einen allgemeinen Erfolg hinweist. Das ErrorCode-Element unter dem UserResponse-Element weist jedoch den Wert „RedirectAddress“ auf, was auf einen Fehler hinweist, der für diesen bestimmten Benutzer aufgetreten ist.

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:a="http://www.w3.org/2005/08/addressing">
  <s:Header>
    <a:Action s:mustUnderstand="1">https://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetUserSettingsResponse</a:Action>
    <h:ServerVersionInfo xmlns:h="https://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="https://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>

Der Artikel ErrorCode (SOAP) enthält eine vollständige Liste möglicher Fehler. Bei den meisten Fehlern handelt es sich um nicht behebbare Fehler, einige können jedoch auf spezielle Weise behandelt werden.

Tabelle 2. SOAP AutoDisover ErrorCode-Werte

ErrorCode-Wert Behandlung
RedirectAddress
Neustarten der AutoErmittlung mit einer neuen E-Mail-Adresse mit der E-Mail-Adresse im RedirectTarget (SOAP)-Element.
RedirectUrl
Erneutes Senden Ihrer Anforderung an eine neue URL an die URL im RedirectTarget-Element.
ServerBusy
Wiederholen Sie diese URL nach einer kurzen Verzögerung. Sie können für einen bestimmten Zeitraum warten oder diese URL einfach an das Ende Ihrer Liste mit URLs verschieben, um es erneut zu versuchen. Wenn Sie diesen Fehler mehrmals für eine URL erhalten, sollten Sie die URL als ungültig betrachten.

POX-AutoErmittlungsfehler

Der POX-AutoErmittlungsdienst meldet Fehler etwas anders. Nicht behebbare Fehler sind im Error (POX)-Element enthalten. Der Artikel ErrorCode (POX) enthält eine vollständige Liste möglicher Fehlercodes.

Umleitungsfehler sind im Action (POX)-Element enthalten. Jeder Wert des Action-Elements, der nicht „settings“ lautet, deutet auf einen Umleitungsfehler hin.

Tabelle 3. POX AutoDisover ErrorCode-Werte

Aktionswert Behandlung
redirectAddr
Neustarten der AutoErmittlung mit einer neuen E-Mail-Adresse mit der E-Mail-Adresse im RedirectAddr (POX)-Element.
redirectUrl
Erneutes Senden Ihrer Anforderung an eine neue URL an die URL im RedirectUrl (POX)-Element.

In diesem Beispiel weist das Action-Element den Wert „redirectAddr“ auf, was darauf hindeutet, dass eine neue Anforderung mit der neuen E-Mail-Adresse gesendet werden sollte, die sich im RedirectAddr-Element befindet.

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

Behandlung von Umleitungsfehlern

Sie können Szenarien mit Umleitungsfehlern auf zweierlei Weise handhaben:

  • Durch einen Neustart der AutoErmittlung mit einer neuen E-Mail-Adresse.

  • Durch erneutes Senden der Anforderung an eine neue URL.

Beide Szenarien erfordern einige Überprüfungen, bevor Sie fortfahren.

Neustart der AutoErmittlung mit einer neuen E-Mail-Adresse

Wenn Sie eine neue E-Mail-Adresse in einer AutoErmittlungs-Umleitungsantwort erhalten, überprüfen Sie zunächst, ob die neue E-Mail-Adresse, die in der Umleitungsfehlerantwort bereitgestellt wurde, nicht dieselbe Adresse ist, die Sie in der Anforderung gesendet haben, die den Fehler verursacht hat. Wenn dies der Fall ist, sollten Sie die AutoErmittlung nicht neu starten, sondern stattdessen die URL, die die Antwort generiert hat, als ungültig betrachten.

Wenn die neue E-Mail-Adresse anders lautet, verwerfen Sie die vorhandene Liste potenzieller URLs für AutoErmittlungs-Endpunkte, und generieren Sie eine neue Liste basierend auf der neuen E-Mail-Adresse.

Erneutes Senden der Anforderung an eine neue URL

Wenn Sie eine neue URL in einer AutoErmittlungs-Umleitungsantwort erhalten, sollten Sie die URL zunächst wie folgt überprüfen:

  • Stellen Sie sicher, dass die URL eine HTTPS-URL ist.

  • Stellen Sie sicher, dass Sie zuvor keinen Fehler von dieser URL mit der aktuellen E-Mail-Adresse erhalten haben.

  • Informieren Sie den Benutzer über die Umleitung, und holen Sie sich dessen Berechtigung zum Folgen der Umleitung, wenn dies für Ihre Anwendung zutrifft.

  • Senden Sie eine Anforderung an die URL, und überprüfen Sie, dass das SSL-Zertifikat gültig ist.

Wenn die URL die Überprüfung besteht, senden Sie die Anforderung erneute an diese neue URL.

Siehe auch