EWS-Einschränkung in ExchangeEWS throttling in Exchange

Lernen Sie die Einschränkungsrichtlinien kennen, die sich bei Verwendung von Exchange auf EWS auswirken.Learn about the throttling policies that affect EWS when you are using Exchange.

Bereitgestellt von: Glen Scales; Michael Mainer, Microsoft CorporationProvided by: Glen Scales; Michael Mainer, Microsoft Corporation

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.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. 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.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. Throttling is a reactive response to overuse of system resources that may affect service reliability and functionality.Throttling is a reactive response to overuse of system resources that may affect service reliability and functionality. Exchange constantly monitors the health of critical infrastructure resources, such as mailbox databases.Exchange constantly monitors the health of critical infrastructure resources, such as mailbox databases. 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.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. 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.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.

Each client access protocol in Exchange, including EWS, has a throttling policy.Each client access protocol in Exchange, including EWS, has a throttling policy. 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.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. 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.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. As applicable, this article also identifies differences in throttling policies in different versions of Exchange.As applicable, this article also identifies differences in throttling policies in different versions of Exchange.

Wichtig

Default throttling policy, access to throttling policy, and throttling policy configuration differs between Exchange Online and Exchange on-premises.Default throttling policy, access to throttling policy, and throttling policy configuration differs between Exchange Online and Exchange on-premises. Specific throttling setting values are only accurate for a specific version of Exchange.Specific throttling setting values are only accurate for a specific version of Exchange. 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.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. 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.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.

Als Anwendungsentwickler müssen Sie in Ihrem Anwendungsentwurf Einschränkungen berücksichtigen.If you are an application developer, you need to factor throttling into your application design. Unterschiedliche Exchange-Versionen haben unterschiedliche Standardwerte für die EWS-Einschränkungsparameter.Different versions of Exchange have different default values for the EWS throttling parameters. Client- und Dienstanwendungen, die für den Zugriff auf verschiedene Exchange-Versionen konzipiert sind, müssen diese Einstellungen berücksichtigen, egal ob es sich um Standardwerte, von einem Exchange-Administrator festgelegte benutzerdefinierte Werte oder - wie im Fall von Exchange Online - standardmäßig festgelegte und nicht auffindbare Werte handelt.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. Da Werte für Einschränkungsparameter nicht programmgesteuert ermittelt werden können, sollten die Cliententwurfsspezifikationen einen Plan enthalten, wie sich die Anwendung an verschiedene mögliche Einschränkungsgrenzwerte anpasst.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. Wenn Sie Multithread-Anwendungen entwerfen, die auf eine große Anzahl von Postfächern zugreifen, oder wenn viele Clients auf dasselbe Postfach zugreifen, berücksichtigen Sie die Grenzwerte für die Parallelität, die die Standardrichtlinie auf Exchange angewendet wird.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.

Einschränkungsrichtlinien mit Auswirkung auf EWSThrottling policies that affect EWS

Die Einschränkungsrichtlinien in Exchange wirken sich nicht nur auf EWS, sondern auch auf alle Clientverbindungen mit dem Exchange-Server aus, einschließlich der von Office Outlook, Outlook Web App und Exchange ActiveSync verwendeten Protokolle.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.

The CPUStartPercent throttling policy can affect EWS performance when you are running Exchange 2010.The CPUStartPercent throttling policy can affect EWS performance when you are running Exchange 2010. 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.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. You cannot change the value of this policy, but knowing about it can help you troubleshoot performance issues.You cannot change the value of this policy, but knowing about it can help you troubleshoot performance issues. The sampling logic the Client Access server performs for this value is an average over a 10 second rolling window.The sampling logic the Client Access server performs for this value is an average over a 10 second rolling window. This allows the process to respond appropriately to quick spikes in CPU utilization.This allows the process to respond appropriately to quick spikes in CPU utilization. When this threshold is exceeded, inbound connections to EWS are delayed.When this threshold is exceeded, inbound connections to EWS are delayed. This delay is capped at 500 milliseconds (msecs) at a theoretical 100% CPU usage per EWS request.This delay is capped at 500 milliseconds (msecs) at a theoretical 100% CPU usage per EWS request. 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.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. The delay time is linearly proportional to CPU usage.The delay time is linearly proportional to CPU usage. At CPUStartPercent, the delay is 0 (a thread yield) and it increases linearly up to 500 msec at 100% CPU usage.At CPUStartPercent, the delay is 0 (a thread yield) and it increases linearly up to 500 msec at 100% CPU usage. 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.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.

In der folgenden Tabelle sind die Einschränkungsrichtlinienparameter aufgeführt, die sich auf Anwendungen mit EWS-Nutzung auswirken.The following table lists the throttling policy parameters that affect applications that use EWS.

Tabelle 1: Einschränkungsrichtlinienparameter mit Auswirkung auf EWSTable 1: Throttling policy parameters that affect EWS

Name des EinschränkungsrichtlinienparametersThrottling policy parameter name Gilt fürApplies to BeschreibungDescription
DiscoveryMaxConcurrencyDiscoveryMaxConcurrency
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Gibt die Anzahl der gleichzeitigen Discoverysuchverbindungen an, die ein Benutzer zur gleichen Zeit geöffnet haben kann.Specifies the number of concurrent discovery search connections that a user can have at the same time.
DiscoveryMaxKeywordsDiscoveryMaxKeywords
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Gibt die maximale Anzahl an Schlüsselwörtern an, die ein Benutzer in eine Discoverysuche einschließen kann.Specifies the maximum number of keywords that a user can include in a discovery search.
DiscoveryMaxKeywordsPerPageDiscoveryMaxKeywordsPerPage
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Gibt die Anzahl an Schlüsselwörtern an, für die Statistiken angezeigt werden sollen.Specifies the number of keywords for which to show statistics.
DiscoveryMaxMailboxesDiscoveryMaxMailboxes
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Gibt die maximale Anzahl an Quellpostfächern an, die ein Benutzer in eine Discoverysuche einschließen kann.Specifies the maximum number of source mailboxes that a user can include in a discovery search.
DiscoveryMaxMailboxesResultsOnlyDiscoveryMaxMailboxesResultsOnly
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Gibt die maximale Anzahl an Postfächern an, die Sie in einer In-Situ-eDiscovery-Suche durchsuchen können, ohne die Statistik anzeigen zu können.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
Gibt die Anzahl an Nachrichten an, die in der Vorschauantwort einer eDiscovery-Suche zurückgegeben werden.Specifies the number of messages returned in a eDiscovery search preview response.
EwsCutoffBalanceEwsCutoffBalance
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Definiert die Grenzwerte für die Ressourcennutzung für EWS-Benutzer, bevor der Benutzer vollständig an der Ausführung von Vorgängen für eine bestimmte Komponente gehindert wird.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
Defines the amount of time that an EWS user can consume an elevated amount of resources before being throttled.Defines the amount of time that an EWS user can consume an elevated amount of resources before being throttled. This is measured in milliseconds.This is measured in milliseconds. This value is set separately for each component.This value is set separately for each component.
EwsRechargeRateEwsRechargeRate
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Definiert die Rate, mit der das Budget eines EWS-Benutzers während der Budgetzeit aufgeladen wird (um die das Budget wächst).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
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.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. This is budgeted differently for different Exchange versions.This is budgeted differently for different Exchange versions.
EWSFastSearchTimeoutInSecondsEWSFastSearchTimeoutInSeconds
Exchange 2010Exchange 2010
Definiert die Zeitspanne in Sekunden, die mit der Exchange-Suche in EWS durchgeführte schnelle Suchläufe fortgesetzt werden, bevor ein Timeout eintritt. Schnelle Suchläufe sind Suchvorgänge, die mithilfe einer AQS-Abfragezeichenfolge (Advanced Query Syntax, erweiterte Abfragesyntax) in einem FindItem-Vorgang ausgeführt werden. 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
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.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. The default value for this property is 1000.The default value for this property is 1000. The fallback valuefor this value is 1000.The fallback valuefor this value is 1000.
In Exchange Online and on-premises versions of Exchange starting with Exchange 2013, this throttling policy cannot be queried or configured by a cmdlet.In Exchange Online and on-premises versions of Exchange starting with Exchange 2013, this throttling policy cannot be queried or configured by a cmdlet. 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.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. An Exchange search without a restriction will return up to 1000 results.An Exchange search without a restriction will return up to 1000 results.
EWSPercentTimeInADEWSPercentTimeInAD
Exchange 2010Exchange 2010
Definiert die Zeit pro Minute in Prozent, für die ein bestimmter Benutzer Active Directory-Anforderungen ausführen kann.Defines the percentage of time per minute during which a specific user can execute Active Directory requests.
EWSPercentTimeInCASEWSPercentTimeInCAS
Exchange 2010Exchange 2010
Definiert die Zeit pro Minute in Prozent, für die ein bestimmter Benutzer Clientzugriffsserver-Code ausführen kann.Defines the percentage of time per minute during which a specific user can execute Client Access server code.
EWSPercentTimeInMailboxRPCEWSPercentTimeInMailboxRPC
Exchange 2010Exchange 2010
Definiert die Zeit pro Minute in Prozent, für die ein bestimmter Benutzer Postfach-RPC-Anforderungen ausführen kann.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
Defines the number of concurrent open connections that a specific user can have against an Exchange server that is using EWS at one time.Defines the number of concurrent open connections that a specific user can have against an Exchange server that is using EWS at one time. The default value for Exchange 2010 is 10.The default value for Exchange 2010 is 10. The default value for Exchange 2013 and Exchange Online is 27.The default value for Exchange 2013 and Exchange Online is 27.
This policy applies to all operations except for streaming notifications.This policy applies to all operations except for streaming notifications. Streaming notifications use the HangingConnectionLimit to indicate the number of open streaming event connections that are available.Streaming notifications use the HangingConnectionLimit to indicate the number of open streaming event connections that are available. For more information, see What throttling values do I need to take into consideration?.For more information, see What throttling values do I need to take into consideration?.
MessageRateLimitMessageRateLimit
Exchange 2010Exchange 2010
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Definiert die Anzahl an Nachrichten pro Minute, die gesendet werden können.Defines the number of messages per minute that can be submitted.
RecipientRateLimitRecipientRateLimit
Exchange 2010Exchange 2010
Exchange 2013Exchange 2013
Exchange OnlineExchange Online
Definiert den Grenzwert für die Anzahl an Empfängern, die ein Benutzer in einem Zeitraum von 24 Stunden adressieren kann.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
Definiert den Grenzwert für die Anzahl an Empfängern für Weiterleitungs-/Umleitungsaktionen im Posteingang in einem Zeitraum von 24 Stunden.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
Definiert den Grenzwert für die Anzahl gleichzeitiger Synchronisierungs Aufrufe (SyncFolderHierarchy, SyncFolderItems) für einen Benutzer.Defines the limit to the number of concurrent sync calls (SyncFolderHierarchy, SyncFolderItems) for a user.

Achtung

Do not set throttling polices to null.Do not set throttling polices to null. This will set the policy to equal unlimited, which indicates that a throttling policy isn't set.This will set the policy to equal unlimited, which indicates that a throttling policy isn't set.

Anzeigen der für Exchange-Postfächer geltenden RichtlinienDisplaying the policies that apply to Exchange mailboxes

Exchange on-premises provides Exchange Management Shell cmdlets that you can use to set and get throttling policy.Exchange on-premises provides Exchange Management Shell cmdlets that you can use to set and get throttling policy. Exchange Online does not provide access to the throttling policy cmdlets.Exchange Online does not provide access to the throttling policy cmdlets.

Sie können die folgenden Cmdlets verwenden, um Einschränkungsrichtlinien für eine lokale Bereitstellung von Exchange Server anzuzeigen:You can use the following cmdlets to display throttling polices for an on-premises Exchange Server deployment:

  • Get-ThrottlingPolicy - Ruft die Clienteinschränkungseinstellungen für eine oder mehrere Einschränkungsrichtlinien ab.Get-ThrottlingPolicy — Gets the client throttling settings for one or more throttling policies. Weitere Informationen finden Sie unter Get-ThrottlingPolicy auf TechNet.For more information, see Get-ThrottlingPolicy on TechNet.

  • Get-ThrottlingPolicyAssociation — Enables you to view the relationship between an object and its associated throttling policies.Get-ThrottlingPolicyAssociation — Enables you to view the relationship between an object and its associated throttling policies. The object can be a user with a mailbox, a user without a mailbox, or a contact.The object can be a user with a mailbox, a user without a mailbox, or a contact. For more information, see Get-ThrottlingPolicyAssociation on TechNet.For more information, see Get-ThrottlingPolicyAssociation on TechNet.

Verwenden Sie den folgenden Befehl, um die standardmäßige Einschränkungsrichtlinie für Exchange 2010 anzuzeigen.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

Verwenden Sie den folgenden Befehl, um die globale Einschränkungsrichtlinie in Exchange 2013 anzuzeigen (die der standardmäßigen Einschränkungsrichtlinie in Exchange 2010 entspricht).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 the following command to show the throttling policy associated with a user in Exchange 2010 or Exchange 2013.Use the following command to show the throttling policy associated with a user in Exchange 2010 or Exchange 2013. Replace the user name john@contoso.com with the user name of the target user for whom you want to get throttling policy information.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

Bei Ausführung dieses Befehls in der Exchange-Verwaltungsshell wird eine Ausgabe ähnlich der folgenden generiert.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

Hinweis

[!HINWEIS] Wenn die ThrottlingPolicyId -Eigenschaft leer ist, wird die Standardrichtlinie auf das Postfach angewendet.When the ThrottlingPolicyId property is blank, the default policy is applied to the mailbox.

Sie können Einschränkungsrichtlinien auf einem Exchange-Server mithilfe der Cmdlets Set-ThrottlingPolicy und Set-ThrottlingPolicyAssociation festlegen.You can set throttling policy on an Exchange server by using the Set-ThrottlingPolicy and Set-ThrottlingPolicyAssociation cmdlets. Sie können nicht standardmäßige Einschränkungsrichtlinien mithilfe der Cmdlets New-ThrottlingPolicy und Remove-ThrottlingPolicy erstellen und entfernen.You can create and remove non-default throttling policies by using the New-ThrottlingPolicy and Remove-ThrottlingPolicy cmdlets.

Tipp

We recommend that you design your applications to adhere to the default throttling policy.We recommend that you design your applications to adhere to the default throttling policy. Only make changes to default throttling policies if your client application design cannot accommodate the default policy.Only make changes to default throttling policies if your client application design cannot accommodate the default policy. Be aware that less restrictive throttling policies can negatively affect service reliability.Be aware that less restrictive throttling policies can negatively affect service reliability.

Überlegungen zu Einschränkungen für Anwendungen, die den EWS-Identitätswechsel verwendenThrottling considerations for applications that use EWS impersonation

Impersonation is an authorization method that enables a single account to access many accounts.Impersonation is an authorization method that enables a single account to access many accounts. When a service account impersonates users, it acts as the users and therefore assumes the rights that are assigned to those users.When a service account impersonates users, it acts as the users and therefore assumes the rights that are assigned to those users. Log files record the access as the impersonated user.Log files record the access as the impersonated user. Administrators use role-based access control (RBAC) to configure impersonation via the Exchange Management Shell.Administrators use role-based access control (RBAC) to configure impersonation via the Exchange Management Shell.

Wenn Identitätswechsel verwendet wird, gelten die Budgets für alle Einschränkungsschwellenwerte je nach Exchange-Version unterschiedlich.When impersonation is used, the budgets for all the throttling thresholds apply differently depending on the version of Exchange. Das Budget wird entweder für das Konto, dessen Identität angenommen wird, oder für das Dienstkonto verrechnet.The budget is either calculated against the account that is impersonated, or the service account. Wenn Ihre Anwendung Multithreaded ist und gleichzeitige Anforderungen an mehrere Postfächer stellt, sollten Sie berücksichtigen, wie sich der einschränkungsschwellenwert auf die Leistung Ihrer Anwendung auswirkt.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. Im Allgemeinen sollten Sie die folgenden Grenzwerte für Dienstkonten berücksichtigen, wenn Sie eine dienstbasierte Anwendung erstellen, die Identitätswechsel für den Zugriff auf alle Postfächer verwendet: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:

  • Bei Verwendung von Identitätswechsel hat das Dienstkonto ein getrenntes Budget für die folgenden Richtlinienparameter:When you use Impersonation, the service account has a separate budget for the following policy parameters:

    • EWSMaxConcurrencyEWSMaxConcurrency

    • EWSPercentTimeInADEWSPercentTimeInAD

    • EWSPercentTimeInCASEWSPercentTimeInCAS

    • EWSPercentTimeInMailboxRPCEWSPercentTimeInMailboxRPC

    • EWSMaxSubscriptionsEWSMaxSubscriptions

    • EWSFastSearchTimeoutInSecondsEWSFastSearchTimeoutInSeconds

    • EWSFindCountLimitEWSFindCountLimit

  • 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).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). Starting with Exchange 2010 SP2 RU4, and including Exchange Online, the service account access uses a separate budget from the user EWSMaxConcurrency budget.Starting with Exchange 2010 SP2 RU4, and including Exchange Online, the service account access uses a separate budget from the user EWSMaxConcurrency budget. 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.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.

    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.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. Streaming notification connections are counted against a separate budget than all other EWS operations.Streaming notification connections are counted against a separate budget than all other EWS operations. 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.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. Streaming notifications in Exchange Online and versions of Exchange starting with Exchange 2013 use the HangingConnectionLimit to limit the number of connections.Streaming notifications in Exchange Online and versions of Exchange starting with Exchange 2013 use the HangingConnectionLimit to limit the number of connections.

    For example, let's assume that EWSMaxConcurrency is equal to five.For example, let's assume that EWSMaxConcurrency is equal to five. 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.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.

  • Die folgende Tabelle zeigt, wie EWSMaxSubscriptions -Einschränkungsbudgets für das Dienstkonto und das Konto, dessen Identität angenommen werden soll, verrechnet werden.The following table identifies how EWSMaxSubscriptions throttling budgets are calculated between the service account and the account to impersonate.

    Tabelle 2: EWSMaxSubscriptions-BudgetberechnungTable 2: EWSMaxSubscriptions budget accounting

    Exchange-VersionExchange version EWSMaxSubscriptions-EinschränkungsbudgetberechnungEWSMaxSubscriptions throttling budget accounting
    Exchange OnlineExchange Online
    Mit Zielpostfach verrechnetCharged against the target mailbox.
    Exchange 2013Exchange 2013
    Mit Zielpostfach verrechnetCharged against the target mailbox.
    Exchange 2010 SP3Exchange 2010 SP3
    Mit Zielpostfach verrechnetCharged against the target mailbox.
    Exchange 2010 SP2Exchange 2010 SP2
    Charged against the calling account.Charged against the calling account. Starting with Exchange 2010 SP2 RU4, the budget is charged against the target mailbox.Starting with Exchange 2010 SP2 RU4, the budget is charged against the target mailbox.
    Exchange 2010 SP1Exchange 2010 SP1
    Mit aufrufendem Konto verrechnetCharged against the calling account.
    Exchange 2010Exchange 2010
    Mit aufrufendem Konto verrechnetCharged against the calling account.
  • Da das EWSMaxSubscriptions -Einschränkungsbudget mit dem Konto verrechnet wird, dessen Identität angenommen wird, ist die Anzahl der Postfächer, die ein Dienstkonto abonnieren und für die es Streamingbenachrichtigungen erhalten kann, unbegrenzt, solange der Identitätswechsel verwendet wird.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. Das Konto, dessen Identität angenommen wird, kann maximal n gleichzeitige Anforderungen pro Zielpostfach ausführen, wobei n der EWSMaxSubscriptions -Wert ist.For the account being impersonated, you can't have more than n concurrent requests per target mailbox, where n is the EWSMaxSubscriptions value. Wenn kein Identitätswechsel verwendet wird, sind für das gleiche Dienstkonto insgesamt maximal n gleichzeitige Anforderungen zulässig.If you were not using impersonation, the same service account could not have more than n concurrent requests total. Die Schlussfolgerung ist daher, dass sich mithilfe eines Identitätswechsels auf einem Dienstkonto die Anzahl von Postfächern, die Sie bedienen können, exponentiell erhöht.So, the takeaway is that by using impersonation on a service account, you exponentially increase the number of mailboxes you can service. Weitere Informationen finden Sie unter Verwalten von Affinität zwischen einer Gruppe von Abonnements und Postfachserver in Exchange.For more information, see Maintain affinity between a group of subscriptions and the Mailbox server in Exchange.

  • The EWSPercentTimeInMailboxRPC, EWSPercentTimeInCAS, and EWSPercentTimeInAD policy parameters refer to actions performed by a single thread.The EWSPercentTimeInMailboxRPC, EWSPercentTimeInCAS, and EWSPercentTimeInAD policy parameters refer to actions performed by a single thread. When an application performs multiple concurrent operations, you should account for the cumulative effect of these operations on the user resource budget.When an application performs multiple concurrent operations, you should account for the cumulative effect of these operations on the user resource budget.

Auswirkungen von Einschränkungen für EWS-BatchanforderungenThrottling implications for EWS batch requests

EWS enables you to batch multiple item requests into a single request that is executed by the Client Access server.EWS enables you to batch multiple item requests into a single request that is executed by the Client Access server. This allows for greater efficiency and performance.This allows for greater efficiency and performance. When an Exchange server executes a batched request, it checks the user's budget after the execution of each item within the batch.When an Exchange server executes a batched request, it checks the user's budget after the execution of each item within the batch. 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.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. 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.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. 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.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. Throttling policies affect batch operations by causing the request to take longer to process.Throttling policies affect batch operations by causing the request to take longer to process. 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.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.

Um die optimale Batchgröße für eine Anwendung zu bestimmen, führen Sie Komponententests mit verschiedenen Eingabesätzen durch, um sicherzustellen, dass in einer Produktionsumgebung keine Fehler in der Anwendung auftreten.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.

Einschränkungsrichtlinienparameter mit Auswirkung auf EWS-SuchvorgängeThrottling policy parameters that affect EWS search operations

Search operations in EWS can require large amounts of time and resources, depending on how the search is run and what information is requested.Search operations in EWS can require large amounts of time and resources, depending on how the search is run and what information is requested. To control resource usage during searches, two policy parameters take effect: EWSFastSearchTimeoutInSeconds and EWSFindCountLimit.To control resource usage during searches, two policy parameters take effect: EWSFastSearchTimeoutInSeconds and EWSFindCountLimit.

Der EWSFastSearchTimeoutInSeconds -Richtlinienparameter gibt die Zeitspanne in Sekunden an, die schnelle EWS-Suchläufe (auch als Inhaltsindizierungssuche bezeichnet) ausgeführt werden, bevor ein Timeout eintritt. Schnelle Suchläufe sind Suchvorgänge, die mithilfe einer AQS-Abfragezeichenfolge (Advanced Query Syntax, erweiterte Abfragesyntax) in einem FindItem-Vorgang ausgeführt werden.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.

Sie können einen Exchange-Postfachordner auf zwei Arten durchsuchen:You can search an Exchange mailbox folder in two ways:

  • Mithilfe einer Exchange-Informationsspeichersuche, die einen sequenziellen Scan aller Nachrichten im Zielsuchbereich durchführtBy using an Exchange store search, which performs a sequential scan of all messages in the target search scope.

  • Mithilfe des Exchange-Suchdiensts (Inhaltsindizierung)By using the Exchange Search service (content indexing).

Both of these types of searches can result in timeouts.Both of these types of searches can result in timeouts. When possible, use the Exchange Search service because these searches are often targeted against mailbox indexes and use AQS queries.When possible, use the Exchange Search service because these searches are often targeted against mailbox indexes and use AQS queries. The following example shows how to perform an AQS search of the Inbox by using EWS and the Exchange Search service.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);

If you can't use an AQS search, avoid using overly complex search filters.If you can't use an AQS search, avoid using overly complex search filters. Also try to avoid creating search filters based on computed values if the query involves extended MAPI properties.Also try to avoid creating search filters based on computed values if the query involves extended MAPI properties. AQS search was introduced in Exchange 2010.AQS search was introduced in Exchange 2010.

Hinweis

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

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.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. Every item or folder that EWS processes in a FindItem or FindFolder request is counted against the budget specified in the EWSFindCountLimit element.Every item or folder that EWS processes in a FindItem or FindFolder request is counted against the budget specified in the EWSFindCountLimit element. When the response is sent back to the requester, the find count charge for the current call is released.When the response is sent back to the requester, the find count charge for the current call is released. 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.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. 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.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. 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.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. Your application should expect that EWS might not return all items.Your application should expect that EWS might not return all items. 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.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.

When you use a FindItem or FindFolder operation, it is important to use paging.When you use a FindItem or FindFolder operation, it is important to use paging. 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.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. The following example shows how to use paging in the EWS Managed API.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);

Hinweis

The default policy in Exchange limits the page size to 1000 items.The default policy in Exchange limits the page size to 1000 items. Setting the page size to a value that is greater than this number has no practical effect.Setting the page size to a value that is greater than this number has no practical effect.

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.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. 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.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);

Einschränkungsrichtlinien und ParallelitätThrottling policies and concurrency

Concurrency refers to the number of connections from a specific user.Concurrency refers to the number of connections from a specific user. A connection is held from the moment a request is received until a response is sent to the requester.A connection is held from the moment a request is received until a response is sent to the requester. If users try to make more concurrent requests than their policy allows, the new connection attempt fails.If users try to make more concurrent requests than their policy allows, the new connection attempt fails. However, the existing connections remain valid.However, the existing connections remain valid. Throttling policies can affect concurrency in a number of different ways.Throttling policies can affect concurrency in a number of different ways.

The EWSMaxConcurrency throttling policy parameter sets the number of concurrent connections that a specific user can have against an Exchange server at one time.The EWSMaxConcurrency throttling policy parameter sets the number of concurrent connections that a specific user can have against an Exchange server at one time. To determine the maximum number of concurrent connections to allow, consider the connections that Outlook clients will use.To determine the maximum number of concurrent connections to allow, consider the connections that Outlook clients will use. Outlook 2007 and Outlook 2010 use EWS to access availability and Out of Office (OOF) information.Outlook 2007 and Outlook 2010 use EWS to access availability and Out of Office (OOF) information. Mac Outlook 2011 uses EWS for all client access functionality.Mac Outlook 2011 uses EWS for all client access functionality. 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.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. 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.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. 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.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.

Applications that concurrently connect to multiple mailboxes have to be able to track resource usage on the client side.Applications that concurrently connect to multiple mailboxes have to be able to track resource usage on the client side. 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.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.

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.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. 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.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. When the first request returns, the budget drops to 100, and when the second request returns, the budget drops to zero.When the first request returns, the budget drops to 100, and when the second request returns, the budget drops to zero. 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.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. 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.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.

Überlegungen zu Einschränkungen für EWS-BenachrichtigungsanwendungenThrottling considerations for EWS notification applications

Wenn Sie EWS-Benachrichtigungsanwendungen erstellen, die Push-, Pull- oder Streamingbenachrichtigungen verwenden, müssen Sie die Auswirkungen der Einschränkungsrichtlinien EWSMaxSubscriptions und EWSMaxConcurrency sowie des HangingConnectionLimit berücksichtigen.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.

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.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. Different versions of Exchange have different default values for this parameter.Different versions of Exchange have different default values for this parameter. A user can subscribe to all folders in a mailbox by using the SubscribeToAllFolders property - this uses a single subscription against the EWSMaxSubscriptions budget.A user can subscribe to all folders in a mailbox by using the SubscribeToAllFolders property - this uses a single subscription against the EWSMaxSubscriptions budget. 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).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).

Informationen zum Identitätswechsel und zum EWSMaxSubscriptions -Parameter finden Sie unter Einschränkungsüberlegungen für Anwendungen, die EWS-Identitätswechsel verwenden weiter vorne in diesem Artikel.For information about impersonation and the EWSMaxSubscriptions parameter, see Throttling considerations for applications that use EWS impersonation earlier in this article.

Auch der EWSMaxConcurrency -Richtlinienparameter kann ein Problem für EWS-Benachrichtigungen darstellen. Beispiel:The EWSMaxConcurrency policy parameter can also be an issue for EWS notifications; for example:

  • Wenn EWS die Anzahl der Verbindungen für den Besitzer des Abonnements erhöht, während ein Pushabonnement eine Benachrichtigung generiert.When EWS increments the connection count for the owner of the subscription while the notification is being generated by a push subscription.

  • Wenn eine Anwendung dafür entwickelt wurde, mehrere Benutzerpostfächer zu überwachen, und Benutzer gleichzeitige Benachrichtigungen für eine Instanz einer Nachricht erhalten, die an eine Verteilerliste gesendet wird.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.

Wenn die Benachrichtigungsanwendung Multithreaded ist und gleichzeitige Verbindungsanforderungen enthält, um weitere Informationen zu einer bestimmten Nachricht abzurufen, die von einem Benutzerkonto empfangen wurde, kann die EWSMaxConcurrency -Richtlinien Grenze überschritten werden.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. Um dies zu berücksichtigen, können Sie die gleichzeitigen Verbindungen in Ihrer Anwendung überwachen, einschließlich derjenigen, die möglicherweise vom Server verwendet werden, und Sie können Anforderungswarteschlangen auf dem Client implementieren.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.

Der HangingConnectionLimit gilt nur für Streamingbenachrichtigungen.The HangingConnectionLimit is only applicable to streaming notifications. Dieser Grenzwert wird in der web.config Datei festgelegt, was bedeutet, dass ein Exchange-Administrator diesen Wert auf einem lokalen Exchange-Server festlegen kann, aber Exchange Online Postfächer den Standardwert für diesen Grenzwert verwenden müssen, also 10 für Exchange Online, Exchange 2019, Exchange 2016 und 3 für 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. Weitere Informationen finden Sie unter Welche Einschränkungswerte muss ich berücksichtigen?To learn more, see What throttling values do I need to take into consideration?.

Einschränkungsrichtlinie und AnwendungsleistungThrottling policy and application performance

Die folgenden drei Parameter der PercentTimeIn -Einschränkungsrichtlinie wirken sich auf die Zeitspanne aus, die eine ESW-Anwendung auf einem Clientzugriffsserver nutzen kann: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

The values specified in the PercentTimeIn policy parameters indicate the amount of time that one thread making one request is allocated.The values specified in the PercentTimeIn policy parameters indicate the amount of time that one thread making one request is allocated. 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.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. This represents an EWSPercentTimeInCAS parameter value of 180 percent.This represents an EWSPercentTimeInCAS parameter value of 180 percent.

Hinweis

The EWSPercentTimeInCAS parameter value is an overlapping superset of the EWSPercentTimeInAD and EWSPercentTimeInMailboxRPC parameter values.The EWSPercentTimeInCAS parameter value is an overlapping superset of the EWSPercentTimeInAD and EWSPercentTimeInMailboxRPC parameter values. This means that the expenditure in Client Access server processing time will always be larger than the expenditures in EWSPercentTimeInAD and EWSPercentTimeInMailboxRPC.This means that the expenditure in Client Access server processing time will always be larger than the expenditures in EWSPercentTimeInAD and EWSPercentTimeInMailboxRPC. This is because for the Exchange component to make an Active Directory or RPC call, it must already be running Client Access server code.This is because for the Exchange component to make an Active Directory or RPC call, it must already be running Client Access server code. In addition, the expenditure in processing time for EWSPercentTimeInCAS doesn't stop while LDAP or RPC calls are being made.In addition, the expenditure in processing time for EWSPercentTimeInCAS doesn't stop while LDAP or RPC calls are being made. 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.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.

Die von einer Anwendung innerhalb eines 60-Sekunden-Zeitraums genutzte CPU-Zeit überschreitet diese Einschränkungsgrenzwerte möglicherweise; daher ist es wichtig, den Umfang und die Art der gestellten Anforderungen zu berücksichtigen.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. Beispielsweise kann ein großer Batch gleichzeitig ausgeführter ResolveNames -Vorgänge den Wert des EWSPercentTimeInAD -Richtlinienparameters überschreiten.For example, a large batch of ResolveNames operations that are made simultaneously can exceed the EWSPercentTimeInAD policy parameter value. Die Richtlinienwerte, die in der Standardeinschränkungsrichtlinie enthalten sind, sind so konzipiert, dass die meisten EWS-Anwendungen ohne Probleme funktionieren. Wenn Multithreaded-Anwendungen mit hohem Volumen eine große Menge von Anforderungen auf einem bestimmten Client Zugriffsserver platzieren, kann dies jedoch zu Problemen führen.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. Um dies zu vermeiden, können Sie die Größe der auf dem Server ausgeführten Batches beschränken.To avoid this, consider limiting the size of batches that are going to execute against the server.

Einschränkungsrichtlinien und Anwendungen mit hohem E-Mail-VersandvolumenThrottling policies and applications that send a large volume of email

Die standardmäßigen Einschränkungsrichtlinien enthalten drei Richtlinienparameter zur Ratenbegrenzung, die Auswirkungen auf Anwendungen haben können, die EWS zum Senden einer großen Anzahl von Nachrichten oder zum Senden von Nachrichten in großen Batches innerhalb kurzer Zeit nutzen.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.

Hinweis

In general, we recommend that you do not use EWS to send bulk email.In general, we recommend that you do not use EWS to send bulk email. Use an SMTP host that specializes in bulk mail services to submit frequent large bulk email messages.Use an SMTP host that specializes in bulk mail services to submit frequent large bulk email messages.

The MessageRateLimit policy parameter specifies the number of messages per minute that can be submitted by any Exchange client, including EWS.The MessageRateLimit policy parameter specifies the number of messages per minute that can be submitted by any Exchange client, including EWS. By default, this policy is set to 30 messages per minute.By default, this policy is set to 30 messages per minute. For ordinary users, this is generally sufficient.For ordinary users, this is generally sufficient. However, applications that send large batches of email messages, for example as part of an invoicing program, can run into problems.However, applications that send large batches of email messages, for example as part of an invoicing program, can run into problems. When this policy limit is exceeded, message delivery for the mailbox is delayed.When this policy limit is exceeded, message delivery for the mailbox is delayed. 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.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. 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.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. When deferred items are stored in the Outbox or drafts folder, users might interpret that as an error.When deferred items are stored in the Outbox or drafts folder, users might interpret that as an error.

The RecipientRateLimit policy parameter specifies the limit on the number of recipients that a user can address in a 24-hour period.The RecipientRateLimit policy parameter specifies the limit on the number of recipients that a user can address in a 24-hour period. 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.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. This limit applies to messages to recipients that are inside and outside the organization.This limit applies to messages to recipients that are inside and outside the organization. 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.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. You can use external services that enable batch processing of messages or separate on-premises outbound relay solutions to work around this limitation.You can use external services that enable batch processing of messages or separate on-premises outbound relay solutions to work around this limitation.

The ForwardeeLimit policy parameter specifies the maximum number of recipients that messages can be forwarded or redirected to by means of Inbox rules.The ForwardeeLimit policy parameter specifies the maximum number of recipients that messages can be forwarded or redirected to by means of Inbox rules. This parameter doesn't limit the number of messages that can be forwarded or redirected to the recipients.This parameter doesn't limit the number of messages that can be forwarded or redirected to the recipients.

Bei Überschreitung von Einschränkungsgrenzwerten generierte FehlerErrors generated when throttling limits are exceeded

Wenn Einschränkungsrichtlinien überschritten werden, generiert EWS einen der in der folgenden Tabelle aufgeführten Fehler.When throttling polices are exceeded, EWS generates one of the errors listed in the following table.

Tabelle 3: Fehler bei Überschreitung von EinschränkungsgrenzwertenTable 3: Throttling limit errors

FehlerError EinschränkungsrichtlinienparameterThrottling policy parameter BeschreibungDescription
ErrorExceededConnectionCountErrorExceededConnectionCount
EWSMaxConcurrencyEWSMaxConcurrency
Gibt an, dass mehr gleichzeitige Anforderungen an den Server gestellt werden, als die Richtlinie des Benutzers zulässt.Indicates that there are more concurrent requests against the server than are allowed by a user's policy.
ErrorExceededSubscriptionCountErrorExceededSubscriptionCount
EWSMaxSubscriptionsEWSMaxSubscriptions
Gibt an, dass die maximale Abonnementanzahl für Richtlinieneinschränkungen eines Benutzers überschritten wurde.Indicates that a user's throttling policy maximum subscription count has been exceeded.
ErrorExceededFindCountLimitErrorExceededFindCountLimit
EWSFindCountLimitEWSFindCountLimit
Gibt an, dass ein Suchvorgangsaufruf die Gesamtzahl der Elemente überschritten hat, die zurückgegeben werden können.Indicates that a search operation call has exceeded the total number of items that can be returned.
ErrorServerBusyErrorServerBusy
EWSPercentTimeInMailboxRPC EWSPercentTimeInCAS EWSPercentTimeInADEWSPercentTimeInMailboxRPC EWSPercentTimeInCAS EWSPercentTimeInAD
Occurs when the server is busy.Occurs when the server is busy. 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.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.

Die folgende Tabelle enthält die HTTP-Statuscodes, die von Einschränkungsfehlern zurückgegeben werden.The following table lists the HTTP status codes that are returned by throttling errors.

Tabelle 4: Von Einschränkungsfehlern zurückgegebene HTTP-StatuscodesTable 4: HTTP status codes returned by throttling errors

HTTP-StatuscodeHTTP status code BeschreibungDescription
HTTP 503HTTP 503
Indicates that EWS requests are queuing with IIS.Indicates that EWS requests are queuing with IIS. The client should delay sending additional requests until a later time.The client should delay sending additional requests until a later time.
HTTP 500HTTP 500
Indicates an internal server error with the ErrorServerBusy error code.Indicates an internal server error with the ErrorServerBusy error code. This indicates that the client should delay sending additional requests until a later time.This indicates that the client should delay sending additional requests until a later time. The response may contain a back off hint called BackOffMilliseconds.The response may contain a back off hint called BackOffMilliseconds. If present, the value of BackOffMilliseconds should be used as the duration until the client resubmits a request.If present, the value of BackOffMilliseconds should be used as the duration until the client resubmits a request.
HTTP 200HTTP 200
Contains an EWS schema-based error response with an ErrorInternalServerError error code.Contains an EWS schema-based error response with an ErrorInternalServerError error code. An inner ErrorServerBusy error code may be present.An inner ErrorServerBusy error code may be present. This indicates that the client should delay sending additional requests until a later time.This indicates that the client should delay sending additional requests until a later time.

Siehe auchSee also