Limitación de EWS en ExchangeEWS throttling in Exchange

Obtenga información sobre las directivas de limitación que afectan a EWS cuando se usa Exchange.Learn about the throttling policies that affect EWS when you are using Exchange.

Proporcionado por: Escalas de Glen; Michael Mainer, Microsoft CorporationProvided by: Glen Scales; Michael Mainer, Microsoft Corporation

En este artículo se proporciona información sobre la limitación de EWS en Exchange Online, Exchange online como parte de Office 365 y las versiones locales de Exchange a partir de Exchange 2010.The article provides information about EWS throttling in Exchange Online, Exchange Online as part of Office 365, and on-premises versions of Exchange starting with Exchange 2010. La limitación en Exchange ayuda a garantizar la confiabilidad y el tiempo de actividad del servidor limitando la cantidad de recursos de servidor que un solo usuario o aplicación puede consumir.Throttling in Exchange helps to ensure server reliability and uptime by limiting the amount of server resources that a single user or application can consume. La limitación es una respuesta reactiva al uso excesivo de los recursos del sistema que pueden afectar a la confiabilidad y la funcionalidad del servicio.Throttling is a reactive response to overuse of system resources that may affect service reliability and functionality. Exchange supervisa constantemente el estado de los recursos de infraestructura críticos, como las bases de datos de buzones de correo.Exchange constantly monitors the health of critical infrastructure resources, such as mailbox databases. Cuando se detectan factores de carga elevados que degradan el rendimiento de estos recursos, las conexiones de EWS se limitan proporcionalmente en función de la cantidad que cada autor de llamada contribuye a la condición de carga alta.When high load factors are detected that degrade the performance of these resources, EWS connections are throttled proportionally based on the amount that each caller has contributed to this high load condition. El resultado es que un usuario puede encontrarse dentro del límite de limitación y seguir experimentando la ralentización hasta que el estado del recurso vuelve a los niveles operativos.The result is that a user may be within their throttling limit and still experience slowdowns until the health of the resource is back to operational levels.

Cada protocolo de acceso de cliente de Exchange, incluido EWS, tiene una directiva de limitación.Each client access protocol in Exchange, including EWS, has a throttling policy. Al diseñar aplicaciones que usan EWS, es importante tener en cuenta las directivas de limitación, para ayudar a garantizar la confiabilidad de la aplicación y el estado de su servidor de Exchange.When you design applications that use EWS, it is important to account for throttling policies, to help ensure application reliability and the health of your Exchange server. En este artículo se identifican las diferentes directivas de limitación y límites de servicio para EWS, tanto si se destina a Exchange online como a versiones de Exchange locales a partir de Exchange Server 2010.This article identifies the different throttling policies and service limits for EWS, whether you are targeting Exchange Online or versions of Exchange on-premises starting with Exchange Server 2010. Según corresponda, este artículo también identifica las diferencias en las directivas de limitación en las diferentes versiones de Exchange.As applicable, this article also identifies differences in throttling policies in different versions of Exchange.

Importante

La Directiva de limitación predeterminada, el acceso a la Directiva de limitación y la configuración de la Directiva de limitación difiere entre Exchange Online y Exchange local.Default throttling policy, access to throttling policy, and throttling policy configuration differs between Exchange Online and Exchange on-premises. Los valores de configuración de limitación específicos solo son precisos para una versión específica de Exchange.Specific throttling setting values are only accurate for a specific version of Exchange. Debido a que la configuración de valores varía entre versiones y los administradores de Exchange pueden cambiar las directivas de limitación predeterminadas para implementaciones locales, este artículo no proporciona los valores de configuración predeterminados.Because setting values vary across versions, and because Exchange administrators can change the default throttling policies for on-premises deployments, this article does not provide the default setting values. Es más importante tener en cuenta las consideraciones que hay que tener en cuenta al diseñar una aplicación que funcione dentro de límites de limitación y que reaccione adecuadamente a los escenarios de limitación.It is more important for you to be aware of the considerations for designing an application that functions within throttling limits and reacts appropriately to throttling scenarios.

Si es desarrollador de aplicaciones, tiene que factorizar la limitación en el diseño de la aplicación.If you are an application developer, you need to factor throttling into your application design. Las diferentes versiones de Exchange tienen valores predeterminados diferentes para los parámetros de limitación de EWS.Different versions of Exchange have different default values for the EWS throttling parameters. Las aplicaciones de servicio y cliente diseñadas para tener acceso a diferentes versiones de Exchange deberán tener en cuenta esta configuración, si son valores predeterminados, valores personalizados definidos por un administrador de Exchange o, como en Exchange Online, establecidos de forma predeterminada y no se pueden detectar.Client and service applications that are designed to access different versions of Exchange will need to account for these settings, whether they be default values, custom values set by an Exchange administrator, or, as for Exchange Online, set by default and not discoverable. Dado que los valores de los parámetros de limitación no se pueden descubrir mediante programación, las especificaciones de diseño de clientes deben incluir un plan para que la aplicación se adapte a límites de limitación potenciales diferentes.Because throttling parameter values cannot be discovered programmatically, your client design specifications should include a plan for the application to adapt to different potential throttling limits. Al diseñar aplicaciones multiproceso que tengan acceso a un gran número de buzones de correo o cuando muchos clientes obtengan acceso al mismo buzón, tenga en cuenta los límites de simultaneidad que la directiva predeterminada aplica a Exchange.When you design multi-threaded applications that will access a large number of mailboxes, or when many clients are accessing the same mailbox, consider the limits on concurrency that the default policy applies to Exchange.

Directivas de limitación que afectan a EWSThrottling policies that affect EWS

Las directivas de limitación de Exchange no afectan solo EWS, sino también todas las conexiones de cliente al servidor Exchange, incluidos los protocolos usados por Office Outlook, Outlook Web App y Exchange ActiveSync.The throttling polices in Exchange affect not only EWS, but also all client connections to the Exchange server, including the protocols used by Office Outlook, Outlook Web App, and Exchange ActiveSync.

La Directiva de limitación de CPUStartPercent puede afectar al rendimiento de EWS al ejecutar Exchange 2010.The CPUStartPercent throttling policy can affect EWS performance when you are running Exchange 2010. Cuando el uso medio de CPU de los procesos de Exchange que se ejecutan en el servidor de acceso de cliente (incluido, entre otros, el proceso de EWS) supera el valor especificado por esta Directiva, las solicitudes de entrada se retrasarán para reducir el uso de la CPU.When the average CPU utilization of Exchange processes running on the Client Access server — including, but not limited to, the EWS process — exceeds the value specified by this policy, inbound requests will be delayed to reduce CPU utilization. No puede cambiar el valor de esta Directiva, pero saber sobre ella puede ayudarle a solucionar problemas de rendimiento.You cannot change the value of this policy, but knowing about it can help you troubleshoot performance issues. La lógica de muestreo que el servidor de acceso de cliente realiza para este valor es un promedio de una ventana graduada de 10 segundos.The sampling logic the Client Access server performs for this value is an average over a 10 second rolling window. Esto permite que el proceso responda adecuadamente a los picos rápidos de uso de la CPU.This allows the process to respond appropriately to quick spikes in CPU utilization. Cuando se supera este umbral, se retrasan las conexiones entrantes a EWS.When this threshold is exceeded, inbound connections to EWS are delayed. Este retraso se limita a 500 milisegundos (mseg) a un uso teórico de la CPU 100% por cada solicitud de EWS.This delay is capped at 500 milliseconds (msecs) at a theoretical 100% CPU usage per EWS request. Si se pasa una solicitud EWS de lote para obtener 100 elementos, el servidor comprobará el uso de CPU 100 veces (una vez por elemento) durante un retraso máximo de 50 segundos.If a batch EWS request to get 100 items is passed, the server will check the CPU usage 100 times (once per item) for a maximum delay of 50 seconds. El tiempo de retraso es linealmente proporcional al uso de la CPU.The delay time is linearly proportional to CPU usage. En CPUStartPercent, el retraso es 0 (un rendimiento del subproceso) y aumenta linealmente hasta 500 ms en el 100% de uso de CPU.At CPUStartPercent, the delay is 0 (a thread yield) and it increases linearly up to 500 msec at 100% CPU usage. Como las directivas de limitación se aplican a todos los usuarios de Exchange, es improbable que el uso de la CPU supere el límite de CPUStartPercent en un servidor de acceso de cliente de Exchange, ya que los usuarios individuales o las aplicaciones no pueden obtener suficiente uso de CPU para afectar al funcionamiento del servidor.Because throttling policies apply to all Exchange users, it's unlikely that CPU usage would exceed the CPUStartPercent limit on an Exchange Client Access server, because individual users or applications cannot gain enough CPU utilization to affect server operation.

En la siguiente tabla se enumeran los parámetros de la Directiva de limitación que afectan a las aplicaciones que usan EWS.The following table lists the throttling policy parameters that affect applications that use EWS.

Tabla 1: parámetros de la Directiva de limitación que afectan a EWSTable 1: Throttling policy parameters that affect EWS

Nombre del parámetro de la Directiva de limitaciónThrottling policy parameter name Se aplica aApplies to DescripciónDescription
DiscoveryMaxConcurrencyDiscoveryMaxConcurrency
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Especifica el número de conexiones de búsqueda de detección simultáneas que un usuario puede realizar a la vez.Specifies the number of concurrent discovery search connections that a user can have at the same time.
DiscoveryMaxKeywordsDiscoveryMaxKeywords
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Especifica el número máximo de palabras clave que un usuario puede incluir en una búsqueda de detección.Specifies the maximum number of keywords that a user can include in a discovery search.
DiscoveryMaxKeywordsPerPageDiscoveryMaxKeywordsPerPage
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Especifica el número de palabras clave para las que se deben mostrar estadísticas.Specifies the number of keywords for which to show statistics.
DiscoveryMaxMailboxesDiscoveryMaxMailboxes
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Especifica el número máximo de buzones de origen que un usuario puede incluir en una búsqueda de detección.Specifies the maximum number of source mailboxes that a user can include in a discovery search.
DiscoveryMaxMailboxesResultsOnlyDiscoveryMaxMailboxesResultsOnly
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Especifica el número máximo de buzones que puede buscar en una búsqueda de exhibición de documentos electrónicos local sin que sea posible ver las estadísticas.Specifies the maximum number of mailboxes you can search in an In-Place eDiscovery search without being able to view the statistics.
DiscoveryPreviewSearchResultsPageSizeDiscoveryPreviewSearchResultsPageSize
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Especifica el número de mensajes devueltos en una respuesta de vista previa de búsqueda de exhibición de documentos electrónicos.Specifies the number of messages returned in a eDiscovery search preview response.
EwsCutoffBalanceEwsCutoffBalance
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Define los límites de consumo de recursos para el usuario de EWS antes de bloquearlo completamente a fin de realizar operaciones en un componente específico.Defines the resource consumption limits for EWS user before that user is completely blocked from performing operations on a specific component.
EwsMaxBurstEwsMaxBurst
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Define la cantidad de tiempo que un usuario de EWS puede consumir una cantidad elevada de recursos antes de limitarse.Defines the amount of time that an EWS user can consume an elevated amount of resources before being throttled. Este valor se mide en milisegundos.This is measured in milliseconds. y se establece por separado para cada componente.This value is set separately for each component.
EwsRechargeRateEwsRechargeRate
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Define la velocidad con la que se vuelve a cargar el presupuesto de un usuario de EWS (el presupuesto aumenta) durante el tiempo de duración del presupuesto.Defines the rate at which an EWS user's budget is recharged (budget grows by) during the budget time.
EWSMaxSubscriptionsEWSMaxSubscriptions
Exchange 2010Exchange 2010
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Define el número máximo de suscripciones de notificación de inserción, extracción y transmisión activas que un usuario puede tener en un servidor de acceso de cliente específico al mismo tiempo.Defines the maximum number of active push, pull, and streaming notification subscriptions that a user can have on a specific Client Access server at one time. Esta se ha presupuestado de forma diferente para diferentes versiones de Exchange.This is budgeted differently for different Exchange versions.
EWSFastSearchTimeoutInSecondsEWSFastSearchTimeoutInSeconds
Exchange 2010Exchange 2010
Define la cantidad de tiempo en segundos que las búsquedas rápidas realizadas mediante la búsqueda de Exchange en EWS continúan antes de que se agote el tiempo de espera. Las búsquedas rápidas son búsquedas realizadas mediante una cadena de consulta de sintaxis de consulta avanzada (AQS) en una operación FindItem.Defines the amount of time in seconds that fast searches made by using Exchange Search in EWS continue before they time out. Fast searches are searches made by using an Advanced Query Syntax (AQS) query string in a FindItem operation.
EWSFindCountLimitEWSFindCountLimit
Exchange 2010Exchange 2010
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Define el número máximo de elementos desde una operación FindItem o FindFolder que puede haber en la memoria del servidor de acceso de cliente al mismo tiempo para un usuario.Defines the maximum number of items from a FindItem operation or FindFolder operation that can exist in memory on the Client Access server at one time for one user. El valor predeterminado de esta propiedad es 1000.The default value for this property is 1000. El valor de retrocesopara este valor es 1000.The fallback valuefor this value is 1000.
En Exchange Online y versiones locales de Exchange a partir de Exchange 2013, un cmdlet no puede consultar ni configurar esta directiva de limitación.In Exchange Online and on-premises versions of Exchange starting with Exchange 2013, this throttling policy cannot be queried or configured by a cmdlet. En Exchange Online y versiones locales de Exchange a partir de Exchange 2013, la EWSFindCountLimit para la búsqueda de AQS y cualquier búsqueda de Exchange con una restricción es de 250 resultados.In Exchange Online and on-premises versions of Exchange starting with Exchange 2013, the EWSFindCountLimit for AQS search and any Exchange search with a restriction is 250 results. Una búsqueda de Exchange sin una restricción devolverá hasta 1000 resultados.An Exchange search without a restriction will return up to 1000 results.
EWSPercentTimeInADEWSPercentTimeInAD
Exchange 2010Exchange 2010
Define el porcentaje de tiempo por minuto durante el cual un usuario específico puede ejecutar solicitudes de Active Directory.Defines the percentage of time per minute during which a specific user can execute Active Directory requests.
EWSPercentTimeInCASEWSPercentTimeInCAS
Exchange 2010Exchange 2010
Define el porcentaje de tiempo por minuto durante el cual un usuario específico puede ejecutar el código del servidor de acceso de cliente.Defines the percentage of time per minute during which a specific user can execute Client Access server code.
EWSPercentTimeInMailboxRPCEWSPercentTimeInMailboxRPC
Exchange 2010Exchange 2010
Define el porcentaje de tiempo por minuto durante el cual un usuario específico puede ejecutar solicitudes RPC de buzón de correo.Defines the percentage of time per minute during which a specific user can execute mailbox RPC requests
EWSMaxConcurrencyEWSMaxConcurrency
Exchange 2010Exchange 2010
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Define el número de conexiones abiertas simultáneas que un usuario específico puede tener en un servidor de Exchange que usa EWS al mismo tiempo.Defines the number of concurrent open connections that a specific user can have against an Exchange server that is using EWS at one time. El valor predeterminado de Exchange 2010 es 10.The default value for Exchange 2010 is 10. El valor predeterminado de Exchange 2013 y Exchange Online es 27.The default value for Exchange 2013 and Exchange Online is 27.
Esta Directiva se aplica a todas las operaciones excepto para las notificaciones de streaming.This policy applies to all operations except for streaming notifications. Las notificaciones de streaming usan el HangingConnectionLimit para indicar el número de conexiones de eventos de transmisión de apertura que están disponibles.Streaming notifications use the HangingConnectionLimit to indicate the number of open streaming event connections that are available. Para obtener más información, vea ¿qué valores de limitación se deben tener en cuenta?.For more information, see What throttling values do I need to take into consideration?.
MessageRateLimitMessageRateLimit
Exchange 2010Exchange 2010
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Define el número de mensajes por minuto que se puede enviar.Defines the number of messages per minute that can be submitted.
RecipientRateLimitRecipientRateLimit
Exchange 2010Exchange 2010
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Define el límite para el número de destinatarios que un usuario puede direccionar en un período de 24 horas.Defines the limit to the number of recipients that a user can address in a 24-hour period.
ForwardeeLimitForwardeeLimit
Exchange 2010Exchange 2010
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Define el límite para el número de destinatarios de las acciones de redirección y redireccionamiento de la bandeja de entrada en un período de 24 horas.Defines the limit to the number of recipients for Inbox forward/redirect actions in a 24-hour period.
ConcurrentSyncCallsConcurrentSyncCalls
Exchange 2019Exchange 2019
Exchange 2016Exchange 2016
Exchange OnlineExchange Online
Define el límite para el número de llamadas de sincronización simultáneas (SyncFolderHierarchy, SyncFolderItems) para un usuario.Defines the limit to the number of concurrent sync calls (SyncFolderHierarchy, SyncFolderItems) for a user.

Precaución

No establezca las directivas de limitación en null.Do not set throttling polices to null. Esto establecerá que la Directiva sea igual a ilimitada, lo que indica que no se ha establecido una directiva de limitación.This will set the policy to equal unlimited, which indicates that a throttling policy isn't set.

Visualización de las directivas que se aplican a los buzones de ExchangeDisplaying the policies that apply to Exchange mailboxes

Exchange local proporciona los cmdlets del shell de administración de Exchange que puede usar para establecer y obtener la Directiva de limitación.Exchange on-premises provides Exchange Management Shell cmdlets that you can use to set and get throttling policy. Exchange online no proporciona acceso a los cmdlets de la Directiva de limitación.Exchange Online does not provide access to the throttling policy cmdlets.

Puede usar los siguientes cmdlets para mostrar las directivas de limitación de peticiones para una implementación local de Exchange Server:You can use the following cmdlets to display throttling polices for an on-premises Exchange Server deployment:

  • Get-ThrottlingPolicy : obtiene la configuración de limitación de clientes para una o más directivas de limitación.Get-ThrottlingPolicy — Gets the client throttling settings for one or more throttling policies. Para obtener más información, vea Get-ThrottlingPolicy en TechNet.For more information, see Get-ThrottlingPolicy on TechNet.

  • Get-ThrottlingPolicyAssociation : permite ver la relación entre un objeto y sus directivas de limitación asociadas.Get-ThrottlingPolicyAssociation — Enables you to view the relationship between an object and its associated throttling policies. El objeto puede ser un usuario con un buzón, un usuario sin buzón o un contacto.The object can be a user with a mailbox, a user without a mailbox, or a contact. Para obtener más información, vea Get-ThrottlingPolicyAssociation en TechNet.For more information, see Get-ThrottlingPolicyAssociation on TechNet.

Use el siguiente comando para mostrar la Directiva de limitación predeterminada para Exchange 2010.Use the following command to show the default throttling policy for Exchange 2010.

Get-ThrottlingPolicy | Where-Object {$ _. IsDefault-EQ "true"} | Format-ListGet-ThrottlingPolicy | Where-Object {$_.IsDefault -eq "True"} | format-list

Use el siguiente comando para mostrar la Directiva de limitación global (que equivale a la Directiva de limitación predeterminada en Exchange 2010) en Exchange 2013.Use the following command to show the global throttling policy (which equates to the default throttling policy in Exchange 2010) in Exchange 2013.

Get-ThrottlingPolicy | Where-Object {$ _. ThrottlingPolicyScope-EQ "global"} | Format-ListGet-ThrottlingPolicy | Where-Object {$_.ThrottlingPolicyScope -eq "Global"} | format-list

Use el siguiente comando para mostrar la Directiva de limitación de peticiones asociada a un usuario en Exchange 2010 o Exchange 2013.Use the following command to show the throttling policy associated with a user in Exchange 2010 or Exchange 2013. Reemplace el nombre de usuario john@contoso.com por el nombre de usuario del usuario de destino para el que desea obtener información sobre la Directiva de limitación.Replace the user name john@contoso.com with the user name of the target user for whom you want to get throttling policy information.

Get-ThrottlingPolicyAssociation john@contoso.com | Format-ListGet-ThrottlingPolicyAssociation john@contoso.com | format-list

Al ejecutar este comando en el shell de administración de Exchange, se obtiene una salida similar a la siguiente.Running this command in Exchange Management Shell results in an output similar to the following.

PS C:\>Get-ThrottlingPolicyAssociation john@contoso.com
RunspaceId               : 72153d6-9dce-2fae-8dbd-5ca5f760g2df
ObjectId                 : john
ThrottlingPolicyId       :
Name                     : john
Identity                 : FHXB-28178dom.contoso.com/Users/john
IsValid                  : True
NeedsToSuppressPii       : False
ExchangeVersion          : 0.10 (15.0.0.0)
DistinguishedName        : CN=john,CN=Users,DC=FHXB-28178dom,DC=contoso,DC=com
Guid                     : 2c10dab6-de28-1937-ad8g-535832613a08

Nota

Cuando la propiedad ThrottlingPolicyId está en blanco, se aplica la directiva predeterminada al buzón.When the ThrottlingPolicyId property is blank, the default policy is applied to the mailbox.

Puede establecer la Directiva de limitación en un servidor de Exchange mediante los cmdlets set-ThrottlingPolicy y set-ThrottlingPolicyAssociation .You can set throttling policy on an Exchange server by using the Set-ThrottlingPolicy and Set-ThrottlingPolicyAssociation cmdlets. Puede crear y quitar directivas de limitación no predeterminadas con los cmdlets New-ThrottlingPolicy y Remove-ThrottlingPolicy .You can create and remove non-default throttling policies by using the New-ThrottlingPolicy and Remove-ThrottlingPolicy cmdlets.

Sugerencia

Le recomendamos que diseñe sus aplicaciones para que cumplan la Directiva de limitación de peticiones predeterminada.We recommend that you design your applications to adhere to the default throttling policy. Solo realice cambios en las directivas de limitación predeterminadas si el diseño de la aplicación cliente no puede acomodar la directiva predeterminada.Only make changes to default throttling policies if your client application design cannot accommodate the default policy. Tenga en cuenta que las directivas de limitación menos restrictivas pueden afectar negativamente la confiabilidad del servicio.Be aware that less restrictive throttling policies can negatively affect service reliability.

Consideraciones de limitación para las aplicaciones que usan la suplantación de EWSThrottling considerations for applications that use EWS impersonation

La suplantación es un método de autorización que permite que una única cuenta tenga acceso a muchas cuentas.Impersonation is an authorization method that enables a single account to access many accounts. Cuando una cuenta de servicio suplanta a los usuarios, actúa como los usuarios y, por lo tanto, asume los derechos asignados a dichos usuarios.When a service account impersonates users, it acts as the users and therefore assumes the rights that are assigned to those users. Los archivos de registro registran el acceso como usuario suplantado.Log files record the access as the impersonated user. Los administradores usan el control de acceso basado en roles (RBAC) para configurar la suplantación a través del shell de administración de Exchange.Administrators use role-based access control (RBAC) to configure impersonation via the Exchange Management Shell.

Cuando se usa la suplantación, los presupuestos de todos los umbrales de limitación se aplican de forma diferente en función de la versión de Exchange.When impersonation is used, the budgets for all the throttling thresholds apply differently depending on the version of Exchange. El presupuesto se calcula en función de la cuenta que se suplanta, o bien de la cuenta de servicio.The budget is either calculated against the account that is impersonated, or the service account. Si la aplicación es multiproceso y realiza solicitudes simultáneas en varios buzones, debe tener en cuenta cómo el umbral de limitación afectará al rendimiento de la aplicación.If your application is multi-threaded and makes concurrent requests against multiple mailboxes, you should consider how the throttling threshold will affect your application's performance. En general, tenga en cuenta los siguientes límites en las cuentas de servicio al crear una aplicación basada en servicios que use la suplantación para obtener acceso a todos los buzones de correo:In general, be aware of the following limits on service accounts when you create a service-based application that uses impersonation to access all mailboxes:

  • Cuando se usa la suplantación, la cuenta de servicio tiene un presupuesto independiente para los siguientes parámetros de directiva:When you use Impersonation, the service account has a separate budget for the following policy parameters:

    • EWSMaxConcurrencyEWSMaxConcurrency

    • EWSPercentTimeInADEWSPercentTimeInAD

    • EWSPercentTimeInCASEWSPercentTimeInCAS

    • EWSPercentTimeInMailboxRPCEWSPercentTimeInMailboxRPC

    • EWSMaxSubscriptionsEWSMaxSubscriptions

    • EWSFastSearchTimeoutInSecondsEWSFastSearchTimeoutInSeconds

    • EWSFindCountLimitEWSFindCountLimit

  • El presupuesto de EWSMaxConcurrency se comparte para la cuenta de servicio y la cuenta que se suplanta para todas las conexiones a las versiones de Exchange anteriores a Exchange 2010 Service Pack 2 (SP2) paquete acumulativo de actualizaciones 4 (RU4).The EWSMaxConcurrency budget is shared for the service account and the account being impersonated for all connections to versions of Exchange earlier than Exchange 2010 Service Pack 2 (SP2) Update Rollup 4 (RU4). A partir de Exchange 2010 SP2 RU4 e incluir Exchange Online, el acceso a la cuenta de servicio usa un presupuesto independiente del presupuesto de EWSMaxConcurrency de usuario.Starting with Exchange 2010 SP2 RU4, and including Exchange Online, the service account access uses a separate budget from the user EWSMaxConcurrency budget. Para obtener más información acerca de la actualización de la Directiva de limitación de conexiones simultáneas de Exchange para EWS, consulte Descripción del paquete acumulativo de actualizaciones 4 para Exchange Server 2010 Service Pack 2.For more information about the update to the Exchange concurrent connection throttling policy for EWS, see Description of Update Rollup 4 for Exchange Server 2010 Service Pack 2.

    Las notificaciones de streaming de EWS en versiones de Exchange a partir de Exchange 2010 e incluyen Exchange Online, tienen un presupuesto EWSMaxConcurrency clonado adicional desde el resto de conexiones de cliente de EWS.EWS streaming notifications in versions of Exchange starting with Exchange 2010, and including Exchange Online, have an additional cloned EWSMaxConcurrency budget from all other EWS client connections. Las conexiones de notificación de transmisión por secuencias se cuentan con un presupuesto independiente que todas las demás operaciones de EWS.Streaming notification connections are counted against a separate budget than all other EWS operations. El presupuesto de simultaneidad máximo de la notificación de transmisión por secuencias es, en realidad, dos presupuestos distintos: un presupuesto es para todas las cuentas de servicio y un presupuesto para la cuenta que se va a suplantar.The streaming notification maximum concurrency budget is actually two different budgets: one budget is for all service accounts, and one budget is for the account being impersonated. Las notificaciones de streaming en Exchange Online y las versiones de Exchange a partir de Exchange 2013 usan HangingConnectionLimit para limitar el número de conexiones.Streaming notifications in Exchange Online and versions of Exchange starting with Exchange 2013 use the HangingConnectionLimit to limit the number of connections.

    Por ejemplo, supongamos que EWSMaxConcurrency es igual a cinco.For example, let's assume that EWSMaxConcurrency is equal to five. Un usuario puede tener cinco conexiones de notificación de extracción abiertas, mientras que una cuenta de servicio puede tener cinco conexiones de notificación de extracción simultáneas en el buzón del usuario al mismo tiempo que el usuario.A user can have five open pull notification connections, while an service account can have five concurrent pull notification connections against the user's mailbox at the same time as the user.

  • En la siguiente tabla se identifica cómo se calculan los presupuestos de limitación de EWSMaxSubscriptions entre la cuenta de servicio y la cuenta que se va a suplantar.The following table identifies how EWSMaxSubscriptions throttling budgets are calculated between the service account and the account to impersonate.

    Tabla 2: contabilidad del presupuesto de EWSMaxSubscriptionsTable 2: EWSMaxSubscriptions budget accounting

    Versión de ExchangeExchange version EWSMaxSubscriptions la Contabilidad presupuestaria del límiteEWSMaxSubscriptions throttling budget accounting
    Exchange OnlineExchange Online
    Se carga en el buzón de correo de destino.Charged against the target mailbox.
    Exchange 2013Exchange 2013
    Se carga en el buzón de correo de destino.Charged against the target mailbox.
    Exchange 2010 SP3Exchange 2010 SP3
    Se carga en el buzón de correo de destino.Charged against the target mailbox.
    Exchange 2010 SP2Exchange 2010 SP2
    Se cargan en la cuenta de llamada.Charged against the calling account. A partir de Exchange 2010 SP2 RU4, el presupuesto se carga en el buzón de correo de destino.Starting with Exchange 2010 SP2 RU4, the budget is charged against the target mailbox.
    Exchange 2010 SP1Exchange 2010 SP1
    Se cargan en la cuenta de llamada.Charged against the calling account.
    Exchange 2010Exchange 2010
    Se cargan en la cuenta de llamada.Charged against the calling account.
  • Debido a que el presupuesto de limitación de EWSMaxSubscriptions se carga en la cuenta que se suplanta, no hay ningún límite en el número de buzones a los que puede suscribir y recibir notificaciones de transmisión por secuencias una cuenta de servicio, siempre que se use la suplantación.Because the EWSMaxSubscriptions throttling budget is charged against the account being impersonated, there is no limit on the number of mailboxes a service account can subscribe to and receive streaming notifications for, as long as impersonation is being used. Para la cuenta que se va a suplantar, no puede tener más de n solicitudes simultáneas por buzón de correo de destino, donde n es el valor de EWSMaxSubscriptions .For the account being impersonated, you can't have more than n concurrent requests per target mailbox, where n is the EWSMaxSubscriptions value. Si no estaba usando la suplantación, la misma cuenta de servicio no podría tener más de n total de solicitudes simultáneas.If you were not using impersonation, the same service account could not have more than n concurrent requests total. Por lo tanto, la ventaja es que, al usar la suplantación en una cuenta de servicio, se aumenta exponencialmente el número de buzones a los que se puede atender.So, the takeaway is that by using impersonation on a service account, you exponentially increase the number of mailboxes you can service. Para obtener más información, vea mantener la afinidad entre un grupo de suscripciones y el servidor de buzones de Exchange.For more information, see Maintain affinity between a group of subscriptions and the Mailbox server in Exchange.

  • Los parámetros de directiva EWSPercentTimeInMailboxRPC, EWSPercentTimeInCASy EWSPercentTimeInAD hacen referencia a acciones realizadas por un único hilo.The EWSPercentTimeInMailboxRPC, EWSPercentTimeInCAS, and EWSPercentTimeInAD policy parameters refer to actions performed by a single thread. Cuando una aplicación realiza varias operaciones simultáneas, debe tener en cuenta el efecto acumulado de estas operaciones en el presupuesto de recursos de usuario.When an application performs multiple concurrent operations, you should account for the cumulative effect of these operations on the user resource budget.

Implicaciones de limitación de solicitudes por lotes de EWSThrottling implications for EWS batch requests

EWS permite procesar en lote varias solicitudes de elementos en una única solicitud ejecutada por el servidor de acceso de cliente.EWS enables you to batch multiple item requests into a single request that is executed by the Client Access server. Esto permite una mayor eficiencia y rendimiento.This allows for greater efficiency and performance. Cuando un servidor de Exchange ejecuta una solicitud por lotes, comprueba el presupuesto del usuario tras la ejecución de cada elemento del lote.When an Exchange server executes a batched request, it checks the user's budget after the execution of each item within the batch. Si la aplicación está por encima del presupuesto, el procesamiento del siguiente elemento del lote se retrasa hasta que el presupuesto de ese usuario se haya recargado.If the application is over budget, the processing of the next item in the batch is delayed until the budget for that user has recharged. Para asegurarse de que las aplicaciones que usan operaciones por lotes se ejecutan correctamente, limite el número de solicitudes de elementos que se pueden incluir en un solo lote y divida los lotes grandes en varios lotes más pequeños para aumentar la confiabilidad de los resultados.To ensure that applications that use batch operations run successfully, limit the number of item requests that can be included in a single batch, and divide large batches across multiple smaller batches to increase the reliability of the results. El efecto que tiene una operación por lotes en umbrales de limitación específicos depende del tipo de solicitud, el tamaño de los elementos que se van a procesar (por ejemplo, en las operaciones UploadItems o ExportItems ) y el contenido del buzón.The effect that a batch operation has on particular throttling thresholds depends on the type of the request, the size of the items to be processed (for example in UploadItems or ExportItems operations) and the mailbox content. Las directivas de limitación afectan a las operaciones por lotes haciendo que la solicitud tarde más tiempo en procesarse.Throttling policies affect batch operations by causing the request to take longer to process. Por lo tanto, el autor de la llamada tendrá que esperar más tiempo para la respuesta y, debido a que EWS limita el tiempo de ejecución de una solicitud por lotes a un minuto, la llamada podría agotar el tiempo de espera.The caller will therefore have to wait longer for the response, and, because EWS limits the execution time of a batch request to one minute, the call could time out.

Para determinar el tamaño de lote óptimo para una aplicación, realice pruebas unitarias con varios conjuntos de entrada para asegurarse de que la aplicación no encuentra ningún error en un entorno de producción.To determine the optimum batch size for an application, perform unit testing using various input sets to ensure that the application does not encounter any errors in a production environment.

Parámetros de directivas de limitación que afectan a las operaciones de búsqueda de EWSThrottling policy parameters that affect EWS search operations

Las operaciones de búsqueda en EWS pueden requerir grandes cantidades de tiempo y recursos, según el modo en que se ejecuta la búsqueda y la información que se solicita.Search operations in EWS can require large amounts of time and resources, depending on how the search is run and what information is requested. Para controlar el uso de recursos durante las búsquedas, se aplican dos parámetros de directiva: EWSFastSearchTimeoutInSeconds y EWSFindCountLimit.To control resource usage during searches, two policy parameters take effect: EWSFastSearchTimeoutInSeconds and EWSFindCountLimit.

El parámetro de directiva EWSFastSearchTimeoutInSeconds especifica la cantidad de tiempo, en segundos, que se ejecutan las búsquedas rápidas de EWS (también conocido como búsqueda de indización de contenido) antes de que se agote el tiempo de espera. Una búsqueda rápida es una búsqueda realizada mediante una cadena de consulta de sintaxis de consulta avanzada (AQS) en una operación FindItem.The EWSFastSearchTimeoutInSeconds policy parameter specifies the amount of time, in seconds, that EWS fast searches (also known as content indexing search) run before they time out. A fast search is a search made by using an Advanced Query Syntax (AQS) query string in a FindItem operation.

Puede buscar en una carpeta de buzón de Exchange de dos maneras:You can search an Exchange mailbox folder in two ways:

  • Mediante una búsqueda de almacén de Exchange, que realiza un análisis secuencial de todos los mensajes en el ámbito de la búsqueda de destino.By using an Exchange store search, which performs a sequential scan of all messages in the target search scope.

  • Mediante el servicio de búsqueda de Exchange (indización de contenido).By using the Exchange Search service (content indexing).

Estos dos tipos de búsquedas pueden tener como resultado tiempos de espera.Both of these types of searches can result in timeouts. Cuando sea posible, use el servicio de búsqueda de Exchange, ya que estas búsquedas se destinan a índices de buzón y usan consultas AQS.When possible, use the Exchange Search service because these searches are often targeted against mailbox indexes and use AQS queries. En el siguiente ejemplo, se muestra cómo realizar una búsqueda AQS de la bandeja de entrada mediante EWS y el servicio de búsqueda de Exchange.The following example shows how to perform an AQS search of the Inbox by using EWS and the Exchange Search service.

ItemView iv = new ItemView(1000);
FindItemsResults<Item> fiitems = service.FindItems(WellKnownFolderName.Inbox, "subject:football", iv);

Si no puedes usar una búsqueda AQS, evita el uso de filtros de búsqueda demasiado complejos.If you can't use an AQS search, avoid using overly complex search filters. Intente evitar también la creación de filtros de búsqueda basados en valores calculados si la consulta incluye propiedades MAPI extendidas.Also try to avoid creating search filters based on computed values if the query involves extended MAPI properties. La búsqueda de AQS se introdujo en Exchange 2010.AQS search was introduced in Exchange 2010.

Nota

La primera vez que se ejecuta una consulta de búsqueda compleja del almacén de Exchange, se ejecuta muy despacio y puede agotar el tiempo de espera. A continuación, la consulta responderá con mayor rapidez.The first time you run a complex Exchange store search query, it runs very slowly and may time out. After that, the query will respond more quickly. Para obtener más información acerca de los procesos de back-end de Exchange Server que se producen durante las consultas de búsqueda del almacén de Exchange, vea Understanding the performance Impact of High Item Counts and Restricted views on technet.For more information about the backend Exchange server processes that occur during Exchange store search queries, see Understanding the Performance Impact of High Item Counts and Restricted Views on TechNet. El uso de un SearchFilter crea una restricción dinámica que ayuda a realizar consultas similares en el futuro, pero debido a que estas restricciones son de naturaleza dinámica, no son permanentes ni confiables y se eliminan después de un máximo de tres días.Using a SearchFilter creates a dynamic restriction that helps similar queries in the future, but because these restrictions are dynamic in nature, they are not permanent or reliable, and are deleted after a maximum of three days.

El parámetro de directiva EWSFindCountLimit especifica el número máximo de elementos a partir de los resultados de una operación FindItem o FindFolder que puede existir en la memoria de un servidor de acceso de cliente al mismo tiempo para un usuario.The EWSFindCountLimit policy parameter specifies the maximum number of items from the results of a FindItem or FindFolder operation that can exist in memory on a Client Access server at the same time for one user. Cada elemento o carpeta que procesa EWS en una solicitud FindItem o FindFolder se cuenta con el presupuesto especificado en el elemento EWSFindCountLimit .Every item or folder that EWS processes in a FindItem or FindFolder request is counted against the budget specified in the EWSFindCountLimit element. Cuando la respuesta se envía de vuelta al solicitante, se suelta la carga del recuento de búsqueda de la llamada actual.When the response is sent back to the requester, the find count charge for the current call is released. La respuesta que devuelve el servidor a un solicitante cuando se excede el presupuesto se basa en el valor del elemento RequestServerVersion y si el solicitante especificó la paginación.The response the server returns to a requester when the budget is exceeded is based on the RequestServerVersion element value and whether the requester specified paging. Cuando el valor del elemento RequestServerVersion indica Exchange 2010 o una versión anterior de Exchange, el servidor envía una respuesta de error con el código de error ErrorServerBusy.When the value of the RequestServerVersion element indicates Exchange 2010 or an earlier version of Exchange, the server sends a failure response with error code ErrorServerBusy. Si el valor del elemento RequestServerVersion indica una versión de Exchange que empieza con Exchange 2010 SP1 o Exchange Online, y el cliente usa la paginación, EWS puede devolver un conjunto de resultados parciales en lugar de un error.If the value of the RequestServerVersion element indicates a version of Exchange starting with Exchange 2010 SP1 or Exchange Online, and the client is using paging, EWS may return a partial result set instead of an error. La aplicación debe esperar que EWS no puede devolver todos los elementos.Your application should expect that EWS might not return all items. Si el valor del elemento IncludesLastItemInRange es false, la aplicación debe realizar otra solicitud FindItem o FindFolder con el nuevo desplazamiento y continuar hasta que el elemento IncludesLastItemInRange devuelva true.If the value of the IncludesLastItemInRange element is false, the application should make another FindItem or FindFolder request with the new offset and continue until the IncludesLastItemInRange element returns true.

Cuando se usa una operación FindItem o FindFolder , es importante usar la paginación.When you use a FindItem or FindFolder operation, it is important to use paging. La API administrada de EWS fuerza el uso de la paginación, pero si usa otros métodos, como objetos proxy de EWS o SOAP sin procesar, debe establecer la paginación explícitamente.The EWS Managed API enforces the use of paging, but if you are using other methods, such as EWS proxy objects or raw SOAP, you need to explicitly set paging. En el ejemplo siguiente se muestra cómo usar la paginación en la API administrada de EWS.The following example shows how to use paging in the EWS Managed API.

ItemView iv = new ItemView(1000);
FindItemsResults<Item> fiFindItemResults = service.FindItems(WellKnownFolderName.Inbox, iv);

Nota

La directiva predeterminada de Exchange limita el tamaño de página a 1000 elementos.The default policy in Exchange limits the page size to 1000 items. Establecer el tamaño de página en un valor mayor que este número no tiene ningún efecto práctico.Setting the page size to a value that is greater than this number has no practical effect.

Las aplicaciones también deben tener en cuenta el hecho de que el valor del parámetro de limitación EWSFindCountLimit puede dar como resultado la devolución de un conjunto de resultados parcial para las aplicaciones que realizan solicitudes simultáneas.Applications should also account for the fact that the EWSFindCountLimit throttling parameter value may result in a partial result set being returned for applications that make concurrent requests. En el siguiente ejemplo se muestra cómo usar la propiedad MoreAvailable en la API administrada de EWS para asegurarse de que todos los resultados se incluyen en una consulta.The following example shows how to use the MoreAvailable property in the EWS Managed API to ensure that all results are included in a query.

ItemView iv = new ItemView(1000);
service.TraceEnabled = false;
FindItemsResults<Item> fiResults = null;
Do
{
    fiResults = service.FindItems(WellKnownFolderName.Inbox, iv);
    PropertySet itItemPropSet = new PropertySet(BasePropertySet.IdOnly) { EmailMessageSchema.Body };
    //Process Items in Result Set
    iv.Offset += fiResults.Items.Count;
}
while (fiResults.MoreAvailable == true);

Directivas de limitación de peticiones y concurrenciaThrottling policies and concurrency

La concurrencia hace referencia al número de conexiones de un usuario específico.Concurrency refers to the number of connections from a specific user. Una conexión se mantiene desde el momento en que se recibe una solicitud hasta que se envía una respuesta al solicitante.A connection is held from the moment a request is received until a response is sent to the requester. Si los usuarios intentan efectuar más solicitudes simultáneas de las que permite su directiva, el nuevo intento de conexión dará error.If users try to make more concurrent requests than their policy allows, the new connection attempt fails. Sin embargo, las conexiones existentes siguen siendo válidas.However, the existing connections remain valid. Las directivas de limitación pueden afectar a la simultaneidad de varias formas.Throttling policies can affect concurrency in a number of different ways.

El parámetro de la Directiva de limitación EWSMaxConcurrency establece el número de conexiones simultáneas que un usuario específico puede tener en un servidor de Exchange al mismo tiempo.The EWSMaxConcurrency throttling policy parameter sets the number of concurrent connections that a specific user can have against an Exchange server at one time. Para determinar el número máximo de conexiones simultáneas que se permiten, tenga en cuenta las conexiones que usarán los clientes de Outlook.To determine the maximum number of concurrent connections to allow, consider the connections that Outlook clients will use. Outlook 2007 y Outlook 2010 usan EWS para tener acceso a la información de disponibilidad y fuera de la oficina (OOF).Outlook 2007 and Outlook 2010 use EWS to access availability and Out of Office (OOF) information. Mac Outlook 2011 usa EWS para todas las funciones de acceso de cliente.Mac Outlook 2011 uses EWS for all client access functionality. Según el número de clientes de Outlook que se conectan de forma activa al buzón de un usuario, el número de conexiones simultáneas disponibles para un usuario puede ser limitado.Depending on the number of Outlook clients that are actively connecting to a user's mailbox, the number of concurrent connections available for a user might be limited. Además, si la aplicación tiene que conectarse a varios buzones de forma simultánea mientras usa un solo contexto de seguridad, es importante tener en cuenta el valor de la directiva EWSMaxConcurrency .Also, if your application has to connect to multiple mailboxes simultaneously while using a single security context, it is important to take the value of the EWSMaxConcurrency policy into account. Para obtener más información sobre el uso de un solo contexto de seguridad con conexiones simultáneas, vea consideraciones sobre limitación de aplicaciones que usan la suplantación de EWS anteriormente en este artículo.For more information about using a single security context with concurrent connections, see Throttling considerations for applications that use EWS impersonation earlier in this article.

Las aplicaciones que se conectan a la vez a varios buzones de correo tienen que poder realizar un seguimiento del uso de recursos en el lado cliente.Applications that concurrently connect to multiple mailboxes have to be able to track resource usage on the client side. Como las operaciones de EWS se basan en solicitudes/respuestas, puede asegurarse de que funcionan correctamente en el umbral de EWSMaxConcurrency mediante el seguimiento del número de conexiones que se producen entre el inicio de una solicitud y el momento en que se recibe la respuesta, y que garantiza que no se produzcan más de diez solicitudes abiertas al mismo tiempo.Because EWS operations are request/response-based, you can ensure that your applications function well within the EWSMaxConcurrency threshold by tracking the number of connections that occur between the start of a request and when the response is received and ensuring that no more than ten open requests occur concurrently.

El parámetro de directiva EWSFindCountLimit especifica el tamaño máximo de resultado que puede usar una operación FindItem o FindFolder en un servidor de acceso de cliente al mismo tiempo para un usuario.The EWSFindCountLimit policy parameter specifies the maximum result size a FindItem or FindFolder operation can use on a Client Access server at the same time for one user. Si una aplicación (o posiblemente varias aplicaciones) realiza dos solicitudes FindItem de EWS simultáneas que devuelven 100 elementos para un usuario específico, la carga de la EWSFindCountLimit con el presupuesto del usuario específico será 200.If an application (or potentially multiple applications) makes two concurrent EWS FindItem requests that return 100 items each for a specific user, the EWSFindCountLimit charge against that specific user's budget will be 200. Cuando se devuelve la primera solicitud, el presupuesto desciende a 100 y, cuando se devuelve la segunda solicitud, el presupuesto disminuye a cero.When the first request returns, the budget drops to 100, and when the second request returns, the budget drops to zero. Si la misma aplicación realizara dos solicitudes simultáneas de 1000 elementos, el valor de presupuesto sería 2000 elementos, lo que supera el valor de EWSFindCountLimit .If the same application were to make two simultaneous requests for 1000 items, the budget value would be 2000 items, which exceeds the EWSFindCountLimit value. Si el presupuesto del usuario para los elementos desciende por debajo de cero, la siguiente solicitud genera un error hasta que el presupuesto del usuario recarga a uno o más.If the user's budget for items drops below zero, the next request results in an error until the user's budget recharges to one or more.

Consideraciones sobre la limitación de solicitudes de notificaciones de EWSThrottling considerations for EWS notification applications

Si va a compilar aplicaciones de notificación de EWS que usan las notificaciones de inserción, extracción o transmisión por secuencias, debe tener en cuenta las implicaciones de las directivas de limitación de peticiones de EWSMaxSubscriptions y EWSMaxConcurrency , y el HangingConnectionLimit.If you are building EWS notification applications that make use of either push, pull, or streaming notifications, you should consider the implications of the EWSMaxSubscriptions and the EWSMaxConcurrency throttling policies, and the HangingConnectionLimit.

El parámetro de directiva EWSMaxSubscriptions especifica el número máximo de suscripciones de inserción, extracción y transmisión activas que un usuario puede tener en un servidor de acceso de cliente específico al mismo tiempo.The EWSMaxSubscriptions policy parameter specifies the maximum number of active push, pull, and streaming subscriptions that a user can have on a specific Client Access server at the same time. Las diferentes versiones de Exchange tienen valores predeterminados diferentes para este parámetro.Different versions of Exchange have different default values for this parameter. Un usuario puede suscribirse a todas las carpetas de un buzón mediante la propiedad SubscribeToAllFolders , que usa una única suscripción contra el presupuesto EWSMaxSubscriptions .A user can subscribe to all folders in a mailbox by using the SubscribeToAllFolders property - this uses a single subscription against the EWSMaxSubscriptions budget. Los usuarios pueden suscribirse a carpetas individuales, con cada suscripción de carpeta contando hacia el presupuesto de EWSMaxSubscriptions , hasta el límite establecido por el valor del parámetro EWSMaxSubscriptions (por ejemplo, los usuarios pueden suscribirse a 20 carpetas de calendario en buzones diferentes si EWSMaxSubscriptions se establece en 20).Users can subscribe to individual folders, with each folder subscription counting towards the EWSMaxSubscriptions budget, up to the limit set by the value of the EWSMaxSubscriptions parameter (for example, users can subscribe to 20 calendar folders in different mailboxes if EWSMaxSubscriptions is set to 20).

Para obtener información sobre la suplantación y el parámetro EWSMaxSubscriptions , vea consideraciones sobre limitación de aplicaciones que usan la suplantación de EWS anteriormente en este artículo.For information about impersonation and the EWSMaxSubscriptions parameter, see Throttling considerations for applications that use EWS impersonation earlier in this article.

El parámetro de directiva EWSMaxConcurrency también puede ser un problema de las notificaciones de EWS; por ejemplo:The EWSMaxConcurrency policy parameter can also be an issue for EWS notifications; for example:

  • Cuando EWS incrementa el número de conexiones para el propietario de la suscripción mientras la notificación se genera mediante una suscripción de inserción.When EWS increments the connection count for the owner of the subscription while the notification is being generated by a push subscription.

  • Cuando una aplicación está diseñada para escuchar buzones de varios usuarios y los usuarios reciben notificaciones simultáneas para una instancia de un mensaje que se envía a una lista de distribución.When an application is designed to listen to multiple users' mailboxes, and users receive simultaneous notifications for an instance of a message that is sent to a distribution list.

Si la aplicación de notificaciones es multiproceso y realiza solicitudes de conexión simultáneas para obtener más información acerca de un mensaje en particular recibido por una cuenta de usuario, se puede superar el límite de directivas de EWSMaxConcurrency .If the notification application is multi-threaded and makes simultaneous connection requests to get more information about a particular message that was received by a user account, the EWSMaxConcurrency policy limit can be exceeded. Para tener esto en cuenta, considere la posibilidad de supervisar las conexiones simultáneas en la aplicación, incluidas las que puede usar el servidor y la implementación de la cola de solicitudes en el cliente.To account for this, consider monitoring the concurrent connections in your application, including those that might be used by the server, and implementing request queuing on the client.

HangingConnectionLimit solo se aplica a las notificaciones de transmisión por secuencias.The HangingConnectionLimit is only applicable to streaming notifications. Este límite se establece en el archivo de web.config, lo que significa que un administrador de Exchange puede establecer este valor en un servidor de Exchange local, pero los buzones de correo de Exchange Online deben usar el valor predeterminado para este límite, que es 10 para Exchange Online, Exchange 2019, Exchange 2016 y 3 para Exchange 2013.This limit is set in the web.config file, which means that an Exchange administrator can set this value on an on-premises Exchange server, but Exchange Online mailboxes must use the default value for this limit, which is 10 for Exchange Online, Exchange 2019, Exchange 2016 and 3 for Exchange 2013. Para obtener más información, vea ¿qué valores de limitación se deben tener en cuenta?.To learn more, see What throttling values do I need to take into consideration?.

Rendimiento de la aplicación y la Directiva de limitaciónThrottling policy and application performance

Los tres parámetros siguientes de la Directiva de limitación PercentTimeIn afectan a la cantidad de tiempo que puede consumir una aplicación EWS en un servidor de acceso de cliente:The following three parameters of the PercentTimeIn throttling policy affect the amount of time an EWS application can consume on a Client Access server:

  • EWSPercentTimeInADEWSPercentTimeInAD

  • EWSPercentTimeInCASEWSPercentTimeInCAS

  • EWSPercentTimeInMailboxRPCEWSPercentTimeInMailboxRPC

Los valores especificados en los parámetros de directiva PercentTimeIn indican la cantidad de tiempo que se asigna un subproceso que realiza una solicitud.The values specified in the PercentTimeIn policy parameters indicate the amount of time that one thread making one request is allocated. Por ejemplo, suponiendo un valor de EWSPercentTimeInCAS de 90, si un proceso realiza dos solicitudes simultáneas que pasan 54 segundos cada ejecución de código en el servidor de acceso de cliente, el proceso usa 108 segundos en una ventana de 60.For example, assuming a EWSPercentTimeInCAS value of 90, if a process makes two concurrent requests that spend 54 seconds each running code on the Client Access server, the process uses 108 seconds in a 60 second window. Esto representa un valor de parámetro EWSPercentTimeInCAS de 180 por ciento.This represents an EWSPercentTimeInCAS parameter value of 180 percent.

Nota

El valor del parámetro EWSPercentTimeInCAS es un supraconjunto superpuestos de los valores de los parámetros EWSPercentTimeInAD y EWSPercentTimeInMailboxRPC .The EWSPercentTimeInCAS parameter value is an overlapping superset of the EWSPercentTimeInAD and EWSPercentTimeInMailboxRPC parameter values. Esto significa que el gasto en el tiempo de procesamiento del servidor de acceso de clientes será siempre mayor que los gastos en EWSPercentTimeInAD y EWSPercentTimeInMailboxRPC.This means that the expenditure in Client Access server processing time will always be larger than the expenditures in EWSPercentTimeInAD and EWSPercentTimeInMailboxRPC. Esto se debe a que para que el componente de Exchange realice una llamada de Active Directory o RPC, ya debe estar ejecutando el código del servidor de acceso de cliente.This is because for the Exchange component to make an Active Directory or RPC call, it must already be running Client Access server code. Además, los gastos en el tiempo de procesamiento de EWSPercentTimeInCAS no se detienen mientras se realizan llamadas LDAP o RPC.In addition, the expenditure in processing time for EWSPercentTimeInCAS doesn't stop while LDAP or RPC calls are being made. Aunque la solicitud podría esperar de forma sincrónica una respuesta de servicios de dominio de Active Directory (AD DS) o del almacén de Exchange, el proceso todavía está consumiendo un subproceso en el servidor y, por lo tanto, el subproceso debe seguir cobrando por ese uso.Although the request might be synchronously waiting for a response from Active Directory Domain Services (AD DS) or the Exchange store, the process is still consuming a thread on the server, and therefore the thread should continue to be charged for that usage.

La cantidad de tiempo de CPU que puede tardar una aplicación en un período de 60-segundo puede superar estos límites de limitación; por lo tanto, es importante tener en cuenta el volumen y el tipo de solicitudes que se realizan.The amount of CPU time an application may take in a 60-second period might exceed these throttling limits; therefore, it is important to consider the volume and type of requests that are being made. Por ejemplo, un lote grande de operaciones de ResolveNames que se realizan simultáneamente puede exceder el valor del parámetro de directiva EWSPercentTimeInAD .For example, a large batch of ResolveNames operations that are made simultaneously can exceed the EWSPercentTimeInAD policy parameter value. Los valores de directiva contenidos en la Directiva de limitación predeterminada están diseñados para permitir que la mayoría de las aplicaciones de EWS funcionen sin problemas; sin embargo, cuando las aplicaciones multiprocesos de alto volumen colocan un gran volumen de solicitudes en un servidor de acceso de cliente en particular, esto puede crear problemas.The policy values that are contained in the default throttling policy are designed to allow most EWS applications to function without issue; however, when multi-threaded high-volume applications place a large volume of requests on one particular Client Access server, this can create problems. Para evitarlo, considere limitar el tamaño de los lotes que se van a ejecutar en el servidor.To avoid this, consider limiting the size of batches that are going to execute against the server.

Limitación de las directivas y aplicaciones que envían un gran volumen de correo electrónicoThrottling policies and applications that send a large volume of email

Las directivas de limitación predeterminadas incluyen tres parámetros de directiva de límite de velocidad que pueden afectar a las aplicaciones que usan EWS para enviar un gran volumen de mensajes o enviar mensajes en lotes grandes en un breve período de tiempo.The default throttling policies include three rate limit policy parameters that can affect applications that use EWS to send a large volume of messages or send messages in large batches in a short period of time.

Nota

En general, se recomienda no usar EWS para enviar correo electrónico masivo.In general, we recommend that you do not use EWS to send bulk email. Use un host SMTP especializado en servicios de correo masivo para enviar mensajes de correo electrónico masivos de gran tamaño.Use an SMTP host that specializes in bulk mail services to submit frequent large bulk email messages.

El parámetro de directiva MessageRateLimit especifica el número de mensajes por minuto que puede enviar cualquier cliente de Exchange, incluido EWS.The MessageRateLimit policy parameter specifies the number of messages per minute that can be submitted by any Exchange client, including EWS. De forma predeterminada, esta directiva está configurada en 30 mensajes por minuto.By default, this policy is set to 30 messages per minute. Para los usuarios normales, suele ser suficiente.For ordinary users, this is generally sufficient. Sin embargo, las aplicaciones que envían lotes de mensajes de correo electrónico de gran tamaño, por ejemplo, como parte de un programa de facturación, pueden tener problemas.However, applications that send large batches of email messages, for example as part of an invoicing program, can run into problems. Cuando se supera el límite de esta Directiva, se retrasa la entrega de mensajes para el buzón.When this policy limit is exceeded, message delivery for the mailbox is delayed. En concreto, los mensajes aparecerán en la carpeta Bandeja de salida o borradores durante períodos de tiempo más prolongados en los que un usuario o aplicación envía un número de mensajes mayor que el valor especificado por el parámetro MessageRateLimit .Specifically, messages will appear in the Outbox or Drafts folder for longer periods of time when a user or application submits a larger number of messages than the value specified by the MessageRateLimit parameter. No olvide tener esto en cuenta al desarrollar un sistema de seguimiento de entregas, especialmente si la aplicación usa un buzón al que los usuarios se conectan a través de Outlook.Be sure to consider this when you are developing a delivery tracking system, especially if your application uses a mailbox that users connect to via Outlook. Cuando los elementos aplazados se almacenan en la carpeta Bandeja de salida o borradores, los usuarios pueden interpretarlo como un error.When deferred items are stored in the Outbox or drafts folder, users might interpret that as an error.

El parámetro de directiva RecipientRateLimit especifica el límite en el número de destinatarios que un usuario puede direccionar en un período de 24 horas.The RecipientRateLimit policy parameter specifies the limit on the number of recipients that a user can address in a 24-hour period. Por ejemplo, si este valor se establece en 500, significa que una sola cuenta de buzón de Exchange puede enviar mensajes a un máximo de 500 destinatarios cada día.For example, if this value is set to 500, it means that a single Exchange mailbox account can send messages to no more than 500 recipients each day. Este límite se aplica a los mensajes a destinatarios que están dentro y fuera de la organización.This limit applies to messages to recipients that are inside and outside the organization. Este límite predeterminado puede causar problemas para algunas aplicaciones de línea de negocio que realizan facturas de fin de mes y que necesitan enviar mensajes a más de este número de destinatarios.This default limit might cause problems for some line-of-business applications that do end-of-month invoice runs and need to send messages to more than this number of recipients. Puede usar servicios externos que permitan el procesamiento por lotes de mensajes o soluciones de retransmisión de salida local independientes para evitar esta limitación.You can use external services that enable batch processing of messages or separate on-premises outbound relay solutions to work around this limitation.

El parámetro de directiva ForwardeeLimit especifica el número máximo de destinatarios a los que se pueden reenviar o redirigir los mensajes mediante reglas de la bandeja de entrada.The ForwardeeLimit policy parameter specifies the maximum number of recipients that messages can be forwarded or redirected to by means of Inbox rules. Este parámetro no limita el número de mensajes que se pueden reenviar o redirigir a los destinatarios.This parameter doesn't limit the number of messages that can be forwarded or redirected to the recipients.

Errores generados al superar los límites de limitaciónErrors generated when throttling limits are exceeded

Cuando se superan las directivas de limitación, EWS genera uno de los errores enumerados en la siguiente tabla.When throttling polices are exceeded, EWS generates one of the errors listed in the following table.

Tabla 3: errores de límite de limitaciónTable 3: Throttling limit errors

ErrorError Parámetro de la Directiva de limitaciónThrottling policy parameter DescripciónDescription
ErrorExceededConnectionCountErrorExceededConnectionCount
EWSMaxConcurrencyEWSMaxConcurrency
Indica que hay más solicitudes simultáneas en el servidor de las permitidas por la Directiva de un usuario.Indicates that there are more concurrent requests against the server than are allowed by a user's policy.
ErrorExceededSubscriptionCountErrorExceededSubscriptionCount
EWSMaxSubscriptionsEWSMaxSubscriptions
Indica que se ha superado el número máximo de suscripciones de la Directiva de limitación de un usuario.Indicates that a user's throttling policy maximum subscription count has been exceeded.
ErrorExceededFindCountLimitErrorExceededFindCountLimit
EWSFindCountLimitEWSFindCountLimit
Indica que una llamada a una operación de búsqueda ha superado el número total de elementos que se pueden devolver.Indicates that a search operation call has exceeded the total number of items that can be returned.
ErrorServerBusyErrorServerBusy
EWSPercentTimeInMailboxRPC EWSPercentTimeInCAS EWSPercentTimeInADEWSPercentTimeInMailboxRPC EWSPercentTimeInCAS EWSPercentTimeInAD
Se produce cuando el servidor está ocupado.Occurs when the server is busy. El valor BackOffMilliseconds devuelto con ErrorServerBusy errores indica al cliente la cantidad de tiempo que debe esperar hasta que deba volver a enviar la solicitud que causó la respuesta que ha devuelto el código de error.The BackOffMilliseconds value returned with ErrorServerBusy errors indicates to the client the amount of time it should wait until it should resubmit the request that caused the response that returned this error code.

En la siguiente tabla se enumeran los códigos de Estado HTTP que se devuelven al limitar los errores.The following table lists the HTTP status codes that are returned by throttling errors.

Tabla 4: códigos de Estado HTTP devueltos por errores de limitaciónTable 4: HTTP status codes returned by throttling errors

Código de estado HTTPHTTP status code DescripciónDescription
HTTP 503HTTP 503
Indica que las solicitudes de EWS se encuentran en la cola de IIS.Indicates that EWS requests are queuing with IIS. El cliente debe retrasar el envío de solicitudes adicionales hasta un momento posterior.The client should delay sending additional requests until a later time.
HTTP 500HTTP 500
Indica un error interno del servidor con el código de error ErrorServerBusy.Indicates an internal server error with the ErrorServerBusy error code. Esto indica que el cliente debe retrasar el envío de solicitudes adicionales hasta un momento posterior.This indicates that the client should delay sending additional requests until a later time. La respuesta puede contener una sugerencia de deshacer llamada BackOffMilliseconds.The response may contain a back off hint called BackOffMilliseconds. Si está presente, el valor de BackOffMilliseconds debe usarse como duración hasta que el cliente reenvíe una solicitud.If present, the value of BackOffMilliseconds should be used as the duration until the client resubmits a request.
HTTP 200HTTP 200
Contiene una respuesta de error basada en esquema EWS con un código de error ErrorInternalServerError.Contains an EWS schema-based error response with an ErrorInternalServerError error code. Es posible que haya un código de error ErrorServerBusy interno.An inner ErrorServerBusy error code may be present. Esto indica que el cliente debe retrasar el envío de solicitudes adicionales hasta un momento posterior.This indicates that the client should delay sending additional requests until a later time.

Vea tambiénSee also