Compartir a través de


Usar autodetección para buscar puntos de conexión

Obtenga información sobre cómo usar el servicio de detección automática para dirigir la aplicación cliente al servidor exchange correcto.

El servicio Detección automática de Exchange proporciona a la aplicación cliente valores de configuración para cuentas de correo electrónico hospedadas en Exchange Online, Exchange Online como parte de Office 365 o un servidor Exchange que ejecuta una versión de Exchange a partir de Exchange 2013. El servicio de detección automática es un servicio web que proporciona opciones de configuración. El servicio de detección automática es un servicio web que proporciona información de configuración del servidor Exchange a la aplicación cliente. Las aplicaciones cliente usan detección automática para determinar el punto de conexión del servicio de detección automática para un buzón específico. En este artículo se explica cómo seguir las respuestas de un servidor Exchange para buscar el punto de conexión correcto.

Para obtener información sobre cómo obtener opciones de configuración de direcciones de correo electrónico, vea Obtener la configuración de usuario de Exchange mediante detección automática y Obtención de la configuración de dominio de un servidor de Exchange.

Nota:

El proceso para buscar el punto de conexión correcto forma parte de la solicitud de configuración de usuario o dominio. El servicio Detección automática usa una serie de respuestas de redireccionamiento para enviar la aplicación cliente al punto de conexión correcto para una dirección de correo electrónico.

Puede usar una de las siguientes tecnologías de desarrollo de Exchange para acceder al servicio de detección automática:

  • La API administrada de servicios Web Exchange (EWS)

  • EWS

Si usa EWS, puede usar los métodos siguientes para recuperar la configuración de usuario:

  • El servicio Detección automática basado en SOAP

  • El servicio Detección automática XML (POX)

  • Un proxy generado automáticamente se ha generado del servicio Detección automática de XML o SOAP

Para obtener más información sobre estos métodos, vea Detección automática en Exchange.

Para obtener más información sobre estas tecnologías de desarrollo de Exchange, vea Exploración de la API administrada de EWS, EWS y servicios web en Exchange.

La API administrada de EWS proporciona una interfaz basada en objetos para recuperar la configuración de usuario. Si su aplicación cliente usa un código administrado, le recomendamos que use la API administrada de EWS. La interfaz de la API administrada de EWS está mejor optimizada para un modelo de objetos simples que el típico proxy de servicio web generado automáticamente.

Si está usando EWS, le sugerimos que use el servicio Detección automática de SOAP, ya que admite un conjunto superior de características que el servicio Detección automática de POX.

Requisitos previos para buscar un punto de conexión

Para poder crear una aplicación cliente que use el servicio Detección automática, debe tener acceso a lo siguiente:

Nota:

Si está usando la API administrada de EWS, debe proporcionar una devolución de llamada de validación de certificado en algunas circunstancias. También puede necesitar una devolución de llamada de validación de certificado con algunas bibliotecas de proxy generadas, como las que se han creado mediante Visual Studio. Para obtener más información, vea Validar un certificado de servidor de la API de administración de EWS.

Conceptos básicos para buscar un punto de conexión

Antes de usar la detección automática para buscar un punto de conexión, debe estar familiarizado con los conceptos enumerados en la tabla siguiente.

Concepto Descripción
Detección automática en Exchange
Proporciona información general del funcionamiento del servicio Detección automática.

Si usa la API administrada de EWS, usa la clase Microsoft.Exchange.WebServices.Data.ExchangeService del espacio de nombres Microsoft.Exchange.WebServices.Data para administrar la conexión con EWS. Para usar los ejemplos de código de la API administrada de EWS en este artículo, debe hacer referencia a los siguientes espacios de nombres en el código:

  • System.Net

  • Microsoft.Exchange.WebServices.Data.ExchangeService

Búsqueda del punto de conexión correcto mediante la API administrada de EWS

Si usa la API administrada de EWS, las llamadas al servicio de detección automática se controlan mediante la clase ExchangeService . Para determinar el punto de conexión correcto para una cuenta de correo electrónico, llame al método AutodiscoverUrl en un objeto [ExchangeService] . En el ejemplo de código siguiente se muestra cómo establecer el punto de conexión de servicio web de EWS para una dirección de correo electrónico en el archivo Exchange.asmx en el servidor de acceso de cliente correcto mediante la API administrada de EWS.

NetworkCredential credentials = new NetworkCredential(securelyStoredEmail, securelyStoredPassword);
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.Credentials = credentials;
service.AutodiscoverUrl("User1@contoso.com");

Búsqueda del punto de conexión correcto mediante EWS

El servicio de detección automática de SOAP puede usar una serie de solicitudes y respuestas para dirigir la aplicación al punto de conexión correcto para EWS. Para obtener información sobre el proceso para determinar el punto de conexión correcto para una cuenta de correo electrónico, vea Detección automática para Exchange. En los ejemplos XML siguientes se muestra la serie de solicitudes y respuestas que puede esperar al realizar una solicitud de detección automática de SOAP para buscar el punto de conexión correcto.

Solicitud de punto de conexión de detección automática de SOAP

En el ejemplo siguiente se muestra una solicitud XML que se envía al servicio de detección automática para buscar el punto de conexión correcto.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:a="https://schemas.microsoft.com/exchange/2010/Autodiscover" 
        xmlns:wsa="http://www.w3.org/2005/08/addressing" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <a:RequestedServerVersion>Exchange2013</a:RequestedServerVersion>
    <wsa:Action>https://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetUserSettings</wsa:Action>
    <wsa:To>https://mail.microsoft.com/autodiscover/autodiscover.svc</wsa:To>
  </soap:Header>
  <soap:Body>
    <a:GetUserSettingsRequestMessage xmlns:a="https://schemas.microsoft.com/exchange/2010/Autodiscover">
      <a:Request>
        <a:Users>
          <a:User>
            <a:Mailbox>User1@Contoso.com</a:Mailbox>
          </a:User>
        </a:Users>
        <a:RequestedSettings>
          <a:Setting>InternalEwsUrl</a:Setting>
          <a:Setting>ExternalEwsUrl</a:Setting>
        </a:RequestedSettings>
      </a:Request>
    </a:GetUserSettingsRequestMessage>
  </soap:Body>
</soap:Envelope>

Respuesta de redireccionamiento de detección automática de SOAP

El servicio de detección automática puede responder con una de las dos respuestas de redireccionamiento: una redirección HTTP 302 o una respuesta de redireccionamiento SOAP. Si la respuesta del servidor exchange es una redirección HTTP 302, la aplicación cliente debe validar que la dirección de redireccionamiento es aceptable y, a continuación, seguir la respuesta de redireccionamiento.

Importante

Para conocer los criterios para validar una respuesta de redireccionamiento, consulte Detección automática para Exchange.

Si el servicio Detección automática devuelve una respuesta de redireccionamiento, indicada por el elemento ErrorCode del elemento UserResponse , la aplicación cliente debe usar el elemento RedirectTarget para construir una nueva solicitud de configuración que se envía al servidor especificado en la respuesta de redireccionamiento. En el ejemplo siguiente se muestra una respuesta de redireccionamiento del servidor.

<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>15</h:MajorVersion>
      <h:MinorVersion>0</h:MinorVersion>
      <h:MajorBuildNumber>682</h:MajorBuildNumber>
      <h:MinorBuildNumber>1</h:MinorBuildNumber>
      <h:Version>Exchange2013</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>User1@mail.Contoso.com</RedirectTarget>
            <UserSettingErrors />
            <UserSettings />
          </UserResponse>
        </UserResponses>
      </Response>
    </GetUserSettingsResponseMessage>
  </s:Body>
</s:Envelope>

Después de un redireccionamiento, el cliente usa la dirección URL de redireccionamiento para preparar otra solicitud. En el código siguiente se muestra un ejemplo de la solicitud que se crea a partir de la respuesta de redireccionamiento.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:a="https://schemas.microsoft.com/exchange/2010/Autodiscover" 
        xmlns:wsa="http://www.w3.org/2005/08/addressing" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <a:RequestedServerVersion>Exchange2013</a:RequestedServerVersion>
    <wsa:Action>https://schemas.microsoft.com/exchange/2010/
        Autodiscover/Autodiscover/GetUserSettings</wsa:Action>
    <wsa:To>https://autodiscover.exchange.microsoft.com/autodiscover/autodiscover.svc</wsa:To>
  </soap:Header>
  <soap:Body>
    <a:GetUserSettingsRequestMessage xmlns:a="https://schemas.microsoft.com/exchange/2010/Autodiscover">
      <a:Request>
        <a:Users>
          <a:User>
            <a:Mailbox>User1@mail.Contoso.com</a:Mailbox>
          </a:User>
        </a:Users>
        <a:RequestedSettings>
          <a:Setting>InternalEwsUrl</a:Setting>
          <a:Setting>ExternalEwsUrl</a:Setting>
        </a:RequestedSettings>
      </a:Request>
    </a:GetUserSettingsRequestMessage>
  </soap:Body>
</soap:Envelope>

Cuando la aplicación cliente se haya dirigido al punto de conexión correcto para el servicio Detección automática, el servidor enviará una respuesta con el elemento ErrorCode del elemento UserResponse establecido en NoError y que contiene la configuración de usuario solicitada. Solo se devuelven la configuración de usuario solicitada, InternalEwsUrl y ExternalEwsUrl. En el ejemplo siguiente se muestra la respuesta del servidor.

<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>15</h:MajorVersion>
      <h:MinorVersion>0</h:MinorVersion>
      <h:MajorBuildNumber>160</h:MajorBuildNumber>
      <h:MinorBuildNumber>4</h:MinorBuildNumber>
      <h:Version>Exchange2013</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>NoError</ErrorCode>
            <ErrorMessage>No error.</ErrorMessage>
            <RedirectTarget i:nil="true" />
            <UserSettingErrors />
            <UserSettings>
              <UserSetting i:type="StringSetting">
                <Name>InternalEwsUrl</Name>
                <Value>https://server.Contoso.com/ews/exchange.asmx</Value>
              </UserSetting>
              <UserSetting i:type="StringSetting">
                <Name>ExternalEwsUrl</Name>
                <Value>https://server.Contoso.com/ews/exchange.asmx</Value>
              </UserSetting>
            </UserSettings>
          </UserResponse>
        </UserResponses>
      </Response>
    </GetUserSettingsResponseMessage>
  </s:Body>
</s:Envelope>

Pasos siguientes

La búsqueda del punto de conexión siguiendo el proceso de detección automática devuelve la configuración de dominio o usuario solicitada. Para obtener información sobre cómo realizar una solicitud de configuración específica, consulte los artículos siguientes:

Vea también