Usar autodetección para buscar puntos de conexiónUse Autodiscover to find connection points

Descubra cómo usar el servicio de detección automática para dirigir la aplicación cliente al servidor Exchange correcto.Find out how to use the Autodiscover service to direct your client application to the correct Exchange server.

El servicio Detección automática de Exchange proporciona a la aplicación cliente opciones de configuración para las cuentas de correo electrónico que se hospedan en Exchange Online, Exchange online como parte de Office 365, o un servidor de Exchange que ejecuta una versión de Exchange que empieza por Exchange 2013.The Exchange Autodiscover service provides your client application with configuration settings for email accounts that are hosted on Exchange Online, Exchange Online as part of Office 365, or an Exchange server running a version of Exchange starting with Exchange 2013. El servicio de detección automática es un servicio Web que proporciona opciones de configuración.The Autodiscover service is a web service that provides configuration settings. El servicio de detección automática es un servicio Web que proporciona información de configuración de Exchange Server a la aplicación cliente.The Autodiscover service is a web service that provides Exchange server configuration information to your client application. Las aplicaciones cliente usan detección automática para determinar el punto final del servicio Detección automática para un buzón específico.Client applications use Autodiscover to determine the endpoint of the Autodiscover service for a specific mailbox. En este artículo se explica cómo seguir las respuestas de un servidor de Exchange para encontrar el punto de conexión correcto.This article explains how to follow the responses from an Exchange server to find the correct endpoint.

Para obtener información sobre cómo obtener las opciones de configuración de direcciones de correo electrónico, consulte obtener configuración de usuario de Exchange mediante la detección automática y obtener la configuración de dominio de un servidor de Exchange.For information about how to get email address configuration settings, see Get user settings from Exchange by using Autodiscover and Get domain settings from an Exchange server.

Nota

El proceso para buscar el punto de conexión correcto forma parte de la solicitud de configuración de usuario o dominio.The process for finding the correct endpoint is part of the request for user or domain settings. El servicio Detección automática usa una serie de respuestas de redirección para enviar la aplicación cliente al punto de conexión correcto para una dirección de correo electrónico.The Autodiscover service uses a series of redirect responses to send the client application to the correct endpoint for an email address.

Puede usar una de las siguientes tecnologías de desarrollo de Exchange para tener acceso al servicio de detección automática:You can use one of the following Exchange development technologies to access the Autodiscover service:

  • La API administrada de servicios Web Exchange (EWS)The Exchange Web Services (EWS) Managed API

  • EWSEWS

Si usa EWS, puede usar los métodos siguientes para recuperar la configuración de usuario:If you are using EWS, you can use the following methods to retrieve user settings:

  • El servicio Detección automática basado en SOAPThe SOAP-based Autodiscover service

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

  • Un proxy generado automáticamente se ha generado del servicio Detección automática de XML o SOAPAn autogenerated proxy generated from the SOAP or XML Autodiscover service

Para obtener más información sobre estos métodos, vea Detección automática en Exchange.For more information about these methods, see Autodiscover for Exchange.

Para obtener más información sobre estas tecnologías de desarrollo de Exchange, vea explorar la API administrada de EWS, EWS y servicios Web de Exchange.For more information about these Exchange development technologies, see Explore the EWS Managed API, EWS, and web services in 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. The EWS Managed API provides an object-based interface for retrieving user settings. If your client application uses managed code, we recommend that you use the EWS Managed API. The EWS Managed API interface is better optimized for a simple object model than the typical autogenerated web service proxy.

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.If you are using EWS, we suggest that you use the SOAP Autodiscover service, because it supports a richer set of features than the POX Autodiscover service.

Requisitos previos para buscar un extremoPrerequisites for finding an endpoint

Antes de crear una aplicación cliente que use el servicio de detección automática, debe tener acceso a lo siguiente:Before you can create a client application that uses the Autodiscover service, you need to have access to the following:

  • Exchange online o un servidor que ejecute una versión de Exchange a partir de Exchange 2007 SP1.Exchange Online or a server that is running a version of Exchange starting with Exchange 2007 SP1. Si usa el servicio de detección automática basado en SOAP, Exchange online o una versión de Exchange que empiece por Exchange 2010.If you are using the SOAP-based Autodiscover service, Exchange Online or a version of Exchange starting with Exchange 2010.

  • Un servidor Exchange que está configurado para aceptar conexiones de su aplicación cliente.An Exchange server that is configured to accept connections from your client application. Para obtener información sobre cómo configurar su servidor de Exchange, vea Controlar el acceso de la aplicación de cliente a EWS en Exchange.For information about how to configure your Exchange server, see Controlling client application access to EWS in Exchange.

  • Una cuenta que esté autorizada para usar EWS.An account that is authorized to use EWS. Para obtener información sobre cómo configurar una cuenta, vea Controlar el acceso de la aplicación de cliente a EWS en Exchange.For information about how to configure an account, see Controlling client application access to EWS in Exchange.

Nota

Si está usando la API administrada de EWS, debe proporcionar una devolución de llamada de validación de certificado en algunas circunstancias.If you are using the EWS Managed API, you must provide a certificate validation callback in some circumstances. 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.You may also need a certificate validation callback with some generated proxy libraries, such as those created by Visual Studio. Para obtener más información, vea Validar un certificado de servidor de la API de administración de EWS.For more information, see Validate a server certificate for the EWS Managed API.

Conceptos básicos para buscar un extremoCore concepts for finding an endpoint

Antes de usar la detección automática para buscar un extremo, debe estar familiarizado con los conceptos que se enumeran en la siguiente tabla.Before you use Autodiscover to find an endpoint, you should be familiar with the concepts listed in the following table.

ConceptoConcept DescripciónDescription
Detección automática en ExchangeAutodiscover for Exchange
Proporciona información general del funcionamiento del servicio Detección automática.Provides an overview of how the Autodiscover service works.

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.If you are using the EWS Managed API, you use the Microsoft.Exchange.WebServices.Data.ExchangeService class in the Microsoft.Exchange.WebServices.Data namespace to manage your connection to EWS. Para usar los ejemplos de código de la API administrada de EWS de este artículo, debe hacer referencia a los siguientes espacios de nombres en el código:To use the EWS Managed API code samples in this article, you need to reference the following namespaces in your code:

  • System.NetSystem.Net

  • Microsoft.Exchange.WebServices.Data.ExchangeServiceMicrosoft.Exchange.WebServices.Data.ExchangeService

Buscar el punto de conexión correcto mediante la API administrada de EWSFind the correct endpoint by using the EWS Managed API

Si usa la API administrada de EWS, las llamadas al servicio Detección automática se administran mediante la clase ExchangeService .If you are using the EWS Managed API, calls to the Autodiscover service are handled by the ExchangeService class. Para determinar el punto de conexión correcto de una cuenta de correo electrónico, llame al método AutodiscoverUrl en un objeto [ExchangeService] .To determine the correct endpoint for an email account, you call the AutodiscoverUrl method on an [ExchangeService] object. En el siguiente ejemplo de código se muestra cómo establecer el extremo del servicio Web 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.The following code example shows how to set the EWS web service endpoint for an email address to the Exchange.asmx file on the correct Client Access server by using the EWS Managed API.

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

Buscar el punto de conexión correcto mediante EWSFind the correct endpoint by using EWS

El servicio 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 de EWS.The SOAP Autodiscover service may use a series of requests and responses to direct your application to the correct endpoint for EWS. Para obtener información acerca del proceso para determinar el punto de conexión correcto para una cuenta de correo electrónico, consulte detección automática de Exchange.For information about the process for determining the correct endpoint for an email account, see Autodiscover for Exchange. Los siguientes ejemplos de XML muestran la serie de solicitudes y respuestas que puede esperar al realizar una solicitud de detección automática de SOAP para encontrar el punto de conexión correcto.The following XML examples show the series of requests and responses that you can expect when making a SOAP Autodiscover request to find the correct endpoint.

Solicitud de extremo de detección automática de SOAPSOAP Autodiscover endpoint request

En el ejemplo siguiente se muestra una solicitud XML que se envía al servicio de detección automática para encontrar el punto de conexión correcto.The following example shows an XML request that is sent to the Autodiscover service to find the correct endpoint.

<?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 SOAPSOAP Autodiscover redirection response

El servicio Detección automática puede responder con una de dos respuestas de redirección: una redirección HTTP 302 o una respuesta de redireccionamiento SOAP.The Autodiscover service may respond with one of two redirection responses: an HTTP 302 redirect, or a SOAP redirection response. Si la respuesta del servidor de 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.If the response from the Exchange server is an HTTP 302 redirect, the client application should validate that the redirection address is acceptable and then follow the redirection response.

Importante

Para consultar los criterios para validar una respuesta de redireccionamiento, consulte detección automática de Exchange.For criteria for validating a redirection response, see Autodiscover for Exchange.

Si el servicio Detección automática devuelve una respuesta de redirección, 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.If the Autodiscover service returns a redirection response, indicated by the ErrorCode element of the UserResponse element, your client application should use the RedirectTarget element to construct a new settings request that is sent to the server specified in the redirection response. En el ejemplo siguiente se muestra una respuesta de redirección del servidor.The following example shows a redirection response from the server.

<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 una redirección, el cliente usa la dirección URL de redireccionamiento para preparar otra solicitud.After a redirection, the client uses the redirection URL to prepare another request. El siguiente código muestra un ejemplo de la solicitud que ha creado a partir de la respuesta de redireccionamiento.The following code shows an example of the request that you create from the redirection response.

<?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 redirigido al punto de conexión correcto del servicio Detección automática, el servidor enviará una respuesta con el elemento ErrorCode del elemento UserResponse establecido en NoError y que contenga la configuración de usuario solicitada.When the client application has been directed to the correct endpoint for the Autodiscover service, the server will send a response with the ErrorCode element of the UserResponse element set to NoError and containing the requested user settings. Solo se devuelven las configuraciones de usuario solicitadas, InternalEwsUrl y ExternalEwsUrl.Only the requested user settings, InternalEwsUrl and ExternalEwsUrl, are returned. En el ejemplo siguiente se muestra la respuesta del servidor.The following example shows the response from the server.

<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>

Siguientes pasosNext steps

La búsqueda del extremo siguiendo el proceso de detección automática devuelve la configuración de dominio o usuario solicitada.Finding the endpoint by following the Autodiscover process returns the requested domain or user settings. Para obtener información sobre cómo realizar una solicitud para una configuración específica, vea los siguientes artículos:For information about making a request for specific settings, see the following articles:

Vea tambiénSee also