2010/05/21

CRM Installation Tips

All Installations
Whether you are upgrading an existing CRM 3 installation or installing a fresh new CRM 4 installation, you will have to pay close attention to all of the system requirements prior to starting your installation or upgrade process. The CRM installation program has a fairly good pre-requisites test that will assess your infrastructure and give you a report of your readiness prior to actually performing the installation.
Some of the things that you should be aware of before you start. Install the latest version of .Net framework on the CRM server, and be aware that CRM 4 requires both SQL Server 2005 and SQL Server Reporting Services 2005, both with Service Pack 2. I recommend that you take care of these prerequisited before starting the CRM 4 installation program, otherwise your prerequisites will fail and the installation program will not let you continue with the installation.


Upgrading from CRM3
Backup everything - including your existing CRM 3 operating system. Backup your databases as well. If your CRM 4 upgrade fails, you will be left with having to reinstall CRM 3 from scratch. So backup everything. Consider yourself forewarned!
Many CRM 3 installations are still running on a SQL 2000 / SQL 2000 Reporting Services Infrastructure. The initial installation guides do not cover the topic of upgrading your SQL infrastructure before you start the CRM 4 upgrade process, but it is an absolute requirement. I highly recommend that to prepare for a CRM 4 upgrade, you upgrade your existing CRM 3 installation to SQL 2005 and ensure that it is all working before you start an upgrade to CRM 4. I would even recommend that you upgrade to SQL 2005 and take a new backup so that your restore point is not so far back. You may even wish to split your upgrade process into a couple of weekends, upgrading your SQL infrastructure on the first weekend, then the CRM system on the next weekend.

*IMPORTANT NOTE*
If you upgrade your database to SQL 2005, you *MUST* ensure that full-text indexing is enabled on your SQL 2005 database prior to running the installation progam. The CRM 4 installation does not test for this, and if full text indexing is not enabled, you will encounter an installation error and be left with the only option of reinstalling CRM 3 and restarting the entire process. You may even have to reinstall your operating system or restore the OS from backups as you may have difficulties with the CRM 3 installation process as well after a botched CRM 4 installation. Full text indexing should be on for SQL 2005 databases, but if you mount a SQL 2000 database in SQL 2005, it might not be enabled. You can enable full text indexing by issuing the following SQL command on that database:

sp_fulltext_database @action='enable'

Installing Reporting Services SP2
You may have a problem trying to patch Reporting Services with Service Pack 2. The upgrade program creates bad SQL that it runs in the process, and that results in the installation failing. The solution is to locate the upgrade log, then strip out the SQL, make the required changes, then run it manually. For example, if your reporting server database is CRM_ReportingServices, the SQL commands will include a USE statement of: USE CRM_[CRM_ReportingServices], which is not valid. I have not found any other way to fix this problem. That said, CRM 4 will require Reporting Services 2005 Service Pack 2, so I recommend you ensure that your reporting services is properly patched prior to installing and configuring CRM 4.
Before you start the CRM 4 upgrade/installation process, be sure to test your Reporting Services url.

404.1 Error Accessing Reporting Services from the CRM Server
You may encounter an issue where the reporting services url does not work from the server that you are installing CRM from. When you browse the reporting services url, you are challenged for credentials 3 times and then given a generic 401.1 error. The fix is to either disable the LSA loopback check, or add the url to the list of valid host names on the reporting services server. See http://support.microsoft.com/?id=896861 for more information.

Email Router Configuration
The email router can be installed and configured seperately. When you install an instance of CRM 4, you will have to provide a friendly name and a convenient name for your CRM organization. This short name for the organization is used as part of the url (keep in mind that CRM 4 is multi-tenant capable). The url is normally not case sensitive, EXCEPT for the email router configuraiton. If you do not get the case properly, it will fail to load the users and will give you false instructions on how to determine your url. Do not follow those instructions - open the deployment manager and use the exact organization name from that program instead. Once you get the exact url, with case proper, you should be able to configure the email gateway.

Access Denied and SPNs
On one of my installations, the CRM web interface would prompt me for credentials, then give me a 401.1 access denied error. I had installed CRM 4 on a website that had custom host headers (custom urls). When I used the custom url (that was not the domain name of the machine), the integrated security would fail. During the installation program, it raised a warning that the website did not resolve to the machine name, so the CRM installation program did tell me about the problem. I noticed that if I used localhost for the url, the website would work fine, but it would not work using the custom url for the site. The solution to the problem was to download the SETSPN.EXE program from the Microsoft website and issue a SETSPN -A HOST/[url] [machine-name] command. Once I ran this, everything worked properly. Welcome to the world of SPNs.
Note that this can also cause an issue with Reporting services. If you are using a custom url for reporting services, integrated security might also fail. Unfortunately, the fix that is promoted is to change the NTAuthenticationProviders IIS metabase property to "NTLM". This will make Reporting Services work, but is incompatible with CRM, as CRM needs "Negotiate, NTLM". That said, the better way to fix reporting services is to register the SPN for that url too, without making modifications to the NTAuthenticationProviders metabase attribute. This will ensure that both Reporting Services and CRM will function on the same machine.