New Exchange standard

Kicking the Tires

Performance with Exchange 2013 SP1

In the case of Exchange 2013 SP1, the use of MAPI over HTTP can cause performance problems on the client. If this is the case in your environment, the SP1 release notes [3] describe in detail how to handle the problem.


With Exchange 2013, first make sure that all Exchange servers have SP1 and .NET Framework 4.5.2 in place. In the next step, update the system variables on the Client Access servers as described here. Open the systempropertiesadvanced system property and set the variable COMPLUS_DisableRetStructPinning to a value of 1.

A new virtual directory for MAPI is created automatically during the installation of Exchange 2016 or of Exchange 2013 SP1. You can check the directory with:

Get-MapiVirtualDirectory -servername

Next you define the internal and external URLs with PowerShell. The procedure is identical for Exchange 2013 and Exchange 2016:

> Set-MapiVirtualDirectory -Identity "mapi (Default Web Site)" -InternalUrl -ExternalUrl -IISAuthenticationMethods Negotiate

The specified URLs must be stored in the certificate for the IIS log, and the client must trust the certificate. (See Table 1 for other PowerShell configuration commands.) The fastest way to check this is by accessing the OWA website. If necessary, proceed to modify the load balancers or firewall rules, so the clients can access the virtual directory for MAPI over HTTP. Finally, enable MAPI over HTTP with PowerShell:

Table 1

Configuring MAPI over HTTP

Command Action
Get-MapiVirtualDirectory Displays the virtual MAPI directories.
Set-MapiVirtualDirectory Changes existing virtual MAPI directories.
New-MapiVirtualDirectory Creates virtual MAPI directories.
Remove-MapiVirtualDirectory Deletes virtual MAPI directories.
Test-OutlookConnectivity Tests Outlook client connectivity with the probe OutlookMapiHttpSelfTestProbe.
Get-OrganizationConfig Checks the settings for MAPI over HTTP in your organization.
Set-OrganizationConfig Configures MAPI over HTTP in Exchange with the MapiHttpEnabled parameter.
Get-CASMailbox Checks the Client Access settings under Exchange 2016 for a mailbox.
Set-CASMailbox Configures the Client Access settings under Exchange 2016 for a mailbox with the MAPIEnabled parameter.
> Set-OrganizationConfig -MapiHttpEnabled $true

Check that this worked as follows:

> Get-OrganizationConfig | fl Name, MapiHttpEnabled

After restarting Outlook, the connection uses MAPI over HTTP.

Functional Test

You can test the MAPI over HTTP connection on the server with the -OutlookConnectivity test command. You need to use the OutlookMapiHttpSelfTestProbe module here:

> Test-OutlookConnectivity -RunFromServerId Server -ProbeIdentity OutlookMapiHttpSelfTestProbe

If you see a success message, everything is set up correctly and the Microsoft Exchange Integrity Service (MSExchangeHM) is running.

On the client, you can see the connection type in the Outlook connection status. To display it, Ctrl+right-click the Outlook icon in the notification area. If the MAPI over HTTP connection is active, you will see HTTP instead of RPC/HTTP displayed in the log. Additionally, the Proxy Server column will be blank and you will see the current server instead of the GUID for Outlook Anywhere (Figure 4) as the server. Furthermore, you will find new logs for MAPI over HTTP activities in the following directories:

  • %ExchangeInstallaPath%Logging\MAPI AddressBook Service\
  • %ExchangeInstallPath%Logging\MAPI Client Access\
  • %ExchangeInstallPath%Logging\HttpProxy\Mapi\
Figure 4: You can tell whether Outlook is using MAPI over HTTP by checking the protocol, which is HTTP in this case.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs

Support Our Work

ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.

Learn More”>


		<div class=