Configuring Microsoft Dynamics CRM 2011 IIS Settings, Registry Settings & E-mail Router Deployment URL

dynamics-crm-2011

I need help with configuration settings for CRM 2011 On-Premise. I am having problems finding example configurations with load balanced app servers. It seems most of the examples on the internet are for single app server configurations.

Our current setup consists of a pair of Cisco CSS (hardware load balancers) configured to load balance 2 application servers CRMAPP1 & CRMAPP2. The Cisco CSS's are configured with a VIP i.e. crmtest.domain.org and incoming/outgoing is set to port 80.

IIS Settings

In IIS Manager I originally configured two bindings like the following:

Binding 1:

Type: http
Host Name: crmtest.domain.org
Port: 80
IP Address: *

Binding 2:

Type: http
Host Name:
Port: 1000
IP Address: *

I originally added the second binding (with port 1000) so we could target each individual app server.
For example, if we deployed a health check application on each CRM app server "http://crmapp1:1000/HealthCheck/default.aspx" and "http://crmapp2:1000/HealthCheck/default.aspx", this would be one way to check the health for each server.

I say originally because I have since taken out binding 2 (with port 1000) and now only have a single binding for the load balanced URL (crmtest.domain.org). I will try to explain why.

From many sources on the internet, I have been reading that more than one IIS bindings are not supported in CRM and we should only have 1 single binding. In my case this would be the load balanced URL crmtest.domain.org.

Question 1: Will adding the second IIS binding, with port 1000, cause any problems with the CRM application?

Question 2: For network load balancing & WCF service endpoints to work properly, is it required to have one single IIS binding set to the cluster address i.e. crmtest.domain.org, port 80, IP Address: * ?

Question 3: Are there any settings or configurations in CRM that require us to target an individual app server?

Registry Settings

The Registry Settings in question are the following for each app server:
IncomingEmailServer: crmtestmr1
LocalSdkPort: 80
ServerUrl: "http://crmtest.domain.org/MSCRMServices"

Question 4: Should both ServerURL registry settings, on each app server, be the same load balanced URL such as "http://crmtest.domain.org/MSCRMServices" or different URL's for each app server such as "http://crmapp1:1000/MSCRMServices" and "http://crmapp2:1000/MSCRMServices"?

Question 5: Should the IncomingEmailServer registry setting simply be the E-mail Router server name?

Question 6: Should the LocalSdkPort registry setting be port 80 or a local port such as 1000?

E-Mail Router Deployment URL

Question 7: Under the [Deployments] tab in the E-Mail Router Configuration Manager should the Microsoft Dynamics Server be the load balanced URL "http://crmtest.domain.org/Organization-Test" or a single app server URL such as "http://crmapp1:1000/Organization-Test"?

Other Configuration Settings (trying to be thorough)

Service Principal Names (SPN)
The Service Principal Names (SPN) are currently configured like the following:

HOST/CRMAPP1
HOST/CRMAPP1.main.domain.org
RestrictedKrbHost/CRMAPP1
RestrictedKrbHost/CRMAPP1.main.domain.org
tapinego/CRMAPP1
tapinego/CRMAPP1.main.domain.org
TERMSRV/CRMAPP1
TERMSRV/CRMAPP1.main.domain.org
WSMAN/CRMAPP1
WSMAN/CRMAPP1.main.domain.org

Question 8: Is there any reason we should add in HTTP/CRMAPP1 or HTTP/CRMAPP1.main.domain.org?

Service Endpoints in Developer Resources
The current Service Endpoints are configured like the following:

Discovery Service
"http://crmtest.domain.org/XRMServices/2011/Discovery.svc"

Organization Service
"http://crmtest.domain.org/Organization-Test/XRMServices/2011/Organization.svc"

Organization Data Service
"http://crmtest.domain.org/Organization-Test/XRMServices/2011/OrganizationData.svc"

Deployment Manager Configurations
The Web Addresses in Deployment Manager are currently configured like the following:

Binding Type:
(x) HTTP

Web Application Server:
crmtest.domain.org:80

Organization Web Service:
crmtest.domain.org:80

Discovery Web Service:
crmtest.domain.org:80

Deployment Web Service:
crmtest.domain.org:80

CRM Deployment Properties in MSCRM_CONFIG database

ADDeploymentSdkRootDomain: crmtest.domain.org:80
ADDiscoveryRootDomain: crmtest.domain.org:80
ADsdkRootDomain: crmtest.domain.org:80
ADWebApplicationRootDomain: crmtest.domain.org:80
AsyncSdkRootDomain: crmtest.domain.org:80

Best Solution

I think the article Install Microsoft Dynamics CRM Server 2011 on multiple computers will answer most of your questions.

  1. This is a not supported configuration. There is only one binding for either http or https allowed. Otherwise you will have problems with the WCF service endpoints

  2. No. You could also use the catch all binding.

  3. No. See article
  4. These settings only apply for plugins, etc. which are running on exactly this server. So you may change them, but you are not required to do so. If you want to have them also "load balanced" then use the cluster address. If not, don't change the default setting (as long your web server is reachable with this address).
  5. You could safely ignore this setting
  6. According to the port of Dynamics CRM. If it listens on port 80, you haven't to change anything as this is default. Change it if you have a different port like 443. Make sure you also adjust LocalSdkHost
  7. Use the cluster address
  8. No, you have to set a SPN for the service account and cluster address, which you have to use throughout the cluster. See the article
Related Question