The CRM 2013 Quick Start is a first look at Microsoft Dynamics CRM 2013 and all the new features that have been included. In the CRM 2013 Quick Start you will find details that can help … Get the book
If you ever need to access the MS CRM server from a remote office with not such a speedy connection, you will notice that CRM is not a particularly light weight application. In a WAN environment where the server is located in a different country or even on a different continent as the users, this can cause some serious issues. Slow performance is a very real threat for CRM user adoption.
In an attempt to respond to the complaints of branch office users about the system usability issues caused by network latency, we have started investigating what really goes on between the CRM server and the CRM client in some of the basic use cases, such as opening CRM default front page (my activities) and opening an account form.
Loading the CRM front page without cahced data can include close to 300 different HTTP requests. To me, that sounds like an insane amount for any web page! Sure, there are various little icons on the screen and many controls to load, but still that is way over what I would expect. My personal installation of SugarCRM only takes 65 HTTP requests to give me a nice dashboard of accounts and activities. Where do all these requests originate from?
Let’s look at the individual requests that take place during a normal CRM page loading:
First you see the request for the 16_print.gif, then a while later you see the same request again. What’s up with that? Going through the list, you will notice that in practice all the items are requested twice from the application server. The first one has a result code 401, the other 200.
Welcome to the world of IIS, or more precisely version 6.0 of it. This is how content protected by integrated Windows Authentication is handled by the server. You can read some discussion on the subject from this thread: “Integrated Windows Authentication – Double Hits“. Brian Reid from C7 Solutions also covered this subject in his blog post “Improving the Performance of IIS 6.0 Applications”, where he also suggests quite an elegant solution of modifying the AuthPersistSingleRequest setting in IIS metabase. However, this being not just any in-house developed site but Microsoft CRM, a business critical application, I’m hesitant to try anything that has not been officially promoted by MS as a performance tweak. Therefore I decided to have a look at what this article had to say about IIS: Optimizing the Performance of Microsoft Dynamics CRM 3.0 White Paper. I’ll share my findings in part 2 of this post.
If you need to support a Microsoft CRM environment where both the desktop (online) and laptop version of the Outlook client are being used, here’s a quick way to switch your own workstation to use a different client mode. Assuming of course that you already have the local SQL database on your machine.
- Open Regedit
- Locate the registry branch HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient
- Set the LightClient registry key to either 00000001 (desktop) or 00000000 (laptop)
There’s another key right next to it, which tells the current status of the client:
- RCOffline = 00000001 equals offline mode
- RCOffline = 00000000 equals offline mode
That registry key may come in handy if your “Go Offline” / “Go Online” buttons in the Outlook UI get mixed (which is what they sometimes do!) and you need to determine the real status of the client.
Another day, another Microsoft CRM blog emerges. WordPress just makes it all too easy.