HTTP Proxy TargetBackEnd limits

powershellLast Update: February 4th, 2016

When deploying Exchange 2013 or Exchange 2016 in co-existence with a legacy version of Exchange, there comes a point where all traffic is routed through Exchange 2013/2016. Traffic for mailboxes hosted on legacy Exchange versions will be proxied by Exchange 2013/2016 to the back end.

This proxy process has some built-in limits for certain protocols, which you could encounter. Symptoms of these limits are Event 2022’s being logged in the Application log by the MSExchange Front End HTTP Proxy service:

image

Per Exchange 2013 CU7, this message should be considered a notice, despite the confusing event description. No connections are being blocked. However, the events create noise in your logs, which can be prevented by raising these limits. To accomplish this, you need to dive in to the web.config of the applicable HTTP Proxy protocols:

  • $ExInstall\FrontEnd\HttpProxy\sync\web.config (for ActiveSync, EAS)
  • $ExInstall\FrontEnd\HttpProxy\rpc\web.config (for OA, RPC/http)

In those files, create or adjust the entry in the <appsettings> configuration node, where <value> is the limit you want to configure (default is 150):

<add key=”HttpProxy.ConcurrencyGuards.TargetBackendLimit” value=”<value>” />

After adjusting these values, recycle the relevant application pools, e.g. MSExchangeSyncAppPool and MSExchangeRPCProxyAppPool.

The above steps need to be performed on all Exchange 2013/2016 Client Access Servers.

To automate this process of tedious editing in web.config files, I have created a small script which lets you alter these values for EAS and RPC against the local server or remotely. The script, Configure-HTTPProxyTargetBackEnd.ps1, has the following parameters:

  • Server to specify server to configure. When omitted, will configure local server.
  • AllServers to process all discoverable Exchange Client Access servers
  • TargetBackEnd specifies Target Backend limit (default 150).
  • NoRecycle to prevent recycling the MSExchangeSyncAppPool and MSExchangeRPCProxyAppPool

For example, to configure the local server with a limit of 2000 for Exchange Active-Sync and RPC access, use:

.\Configure-HTTPProxyTargetBackEnd.ps1 -TargetBackEnd 2000

image

Note that the script will create a backup copy of the web.config files before editing, using the current timestamp.

Download
You can download the script from the TechNet Gallery here.

Feedback
Feedback is welcomed through the comments. If you got scripting suggestions or questions, do not hesitate using the contact form.

Revision
See TechNet Gallery page.

18 thoughts on “HTTP Proxy TargetBackEnd limits

  1. Pingback: Weekly IT Newsletter – December 28-January 1st, 2016 | Just a Lync Guy

  2. Pingback: NeWay Technologies – Weekly Newsletter #180 – January 1st, 2016 | NeWay

  3. Pingback: 在web.config中为HTTP代理请求配置目标后台 - Exchange中文站

  4. Pingback: Weekly IT Newsletter – December 28-January 1st, 2016 – Guy UC World

  5. Applied this change to a 2013 CU11 installation 2 server setup (Edge/Mailbox-CAS-Transport).

    Do we have to apply this to both files you specified? Or just the one we have the errors from? I made changes to:

    $ExInstall\FrontEnd\HttpProxy\sync\web.config (for ActiveSync, EAS)

    When I cycled app pools and even did a IISreset, anything that was HTTP Front end crashed and all services relying on that site turned degraded/unhealthy. I had to undo the web.config change and restart all Exchange services, it totally broke Exchange for us. Did I do something wrong?

    • Hard to tell if/what went wrong – this is primarily for co-existence scenarios. It’s for Ex2013 CAS/Multi-Role – haven’t tested with Ex2016. It does not apply to Edge. The script does all the web.config editing for you, for EAS and RpcHttp protocols; manual editing is at your own risk. When done, you should only need to recycle the app pool.

      • @Michel – This used to be co-existence, no longer have 2007 in environment but getting these errors after CU11 was applied and had received them ever since co-existence. This was not being applied to Edge, only to our Mailbox server, RIght now our config is as follows:

        Edge Server – Edge Transport
        Mailbox Server – CAS, Mailbox, Transport roles

        I figured since this only applied to EAS/AS not OA/RPC I only had to update the first web.config file, I ended up NOT updating the 2nd file:

        $ExInstall\FrontEnd\HttpProxy\rpc\web.config (for OA, RPC/http)

        I ended up reverting back and restarting all services that resolved it but would like to apply this, just dont’ feel it should be applied to a scope larger then what I need, which is why i asked if it needed to be applied to both files.

  6. Hi,
    Same warning on Ex2k13 CU13 but in this case it was for [MAPI]. Can i add same entry into Exchange Server\V15\FrontEnd\HttpProxy\mapi\web.config file? We completed migration from Exchange 2007 and remove all legacy servers.
    Thank you

    Daniele

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s