I've recently run into this issue a few times with Exchange 2010 customers. This issue tends to have more of an effect on iOS devices, due to the nature of how Apple implements the ActiveSync protocol with its devices.
This issue manifests itself in a number of ways. However the most common is likely that an iOS device is trying to send a large attachment (likely around 8MB or larger). The result is that the device fails to send the attachment, and the following Event ID is logged on the Exchange Client Access server:
Event ID 1008
Message: An exception occurred and was handled by Exchange ActiveSync. This may have been caused by an outdated or corrupted Exchange ActiveSync device partnership. This can occur if a user tries to modify the same item from multiple computers. If this is the case, Exchange ActiveSync will re-create the partnership with the device. Items will be updated at the next synchronization.
If you look further down into the Event ID you will find Maximum Request Length Exceeded under the Exception Message.
This Event ID will likely repeat over and over as the iPhone continues to sync. Most likely if you check the device (or devices) of any affected users you will see a message in the outbox with a large attachment (>8MB).
This is due to the Max Request Length setting being 10MB by default. So any message with an attachment that is around 8MB or so will fail to send as the request is too big. The reason I say 8MB is that we have to take into consideration the 33% MIME conversion bloat added to the message after MIME conversion. Once that 33% is taken into account, we will exceed the 10MB Max Request Length limitation. The iPhone will continue to try and send the message until it is removed from the device.
To resolve this issue with iOS devices, we typically recommend increasing the Maximum Request Length parameter on the web.config file for ActiveSync on the Client Access Server(s).
- On the CAS servers, browse to the web.config file (under the ClientAccess\Sync folder)
- Open the web.config file
- Modify the <httpRuntime maxRequestLength=”10240″/> parameter to a higher value to something higher, such as 15360 (15MB).
- Save the updated web.config file
- Restart IIS (IISRESET)
That's it. Naturally if a larger value is needed then just follow the same steps to increase the value that is required. We don't recommend getting too carried away with this setting. Common recommendations are 15-20MB... and usually no higher than 50MB.