Article By:

While working on adding an additional Dynamics CRM Web Server to an existing installation, I came across an interesting error that I spent a lot of time troubleshooting. I hope this blog post will help others solve this problem or a similar problem in the future in much less time. The installation for the additional server completed without any issues, however when attempting to browse the web server locally using https://localhost , I was redirected to the ADFS login page but then received a generic CRM exception page.
The full error message from the ADFS Admin Event Log is shown below.

>Crm Exception: Message: There must be one and only one site map in the system, ErrorCode: -2147220970
[2018-03-29 02:19:46.894] Process: w3wp |Organization:00000000-0000-0000-0000-000000000000 |Thread:   64 |Category: Application |User: 00000000-0000-0000-0000-000000000000 |Level: Error |ReqId: 92375383-1fe1-4cd7-8a26-58c673398b55 | HttpApplication.RaiseOnError  ilOffset = 0x0
>Request https://localhost/Staging/main.aspx failed with exception Microsoft.Crm.CrmException: There must be one and only one site map in the system
   at Microsoft.Crm.CrmException.Assert(Boolean condition, String message)
   at Microsoft.Crm.Application.MasterSiteMap.RetrieveSiteMap(Boolean useReferenceXml, Boolean retrieveLatest, IOrganizationContext context)
   at Microsoft.Crm.Application.MasterSiteMap.LoadMasterSiteMapInternal(DynamicMetadataCache metadataCache, Boolean useReferenceXml, Boolean retrieveLatest, IOrganizationContext context)
   at Microsoft.Crm.Application.MasterSiteMap.LoadMasterSiteMap(DynamicMetadataCache metadataCache, Boolean retrieveLatest, IOrganizationContext context)
   at Microsoft.Crm.Caching.MasterSiteMapCacheLoader.LoadCacheData(Int32 key, IOrganizationContext context)
   at Microsoft.Crm.Caching.CrmMultiOrgCacheBase`2.LookupEntry(TKey key, IOrganizationContext context)
   at Microsoft.Crm.Application.SiteMap.GetSiteMapForUser(IUser user, Client client, Boolean isOffline, String forceGroupProfiles)
   at Microsoft.Crm.Application.SiteMap.GetSiteMapForUser(IUser user)
   at Microsoft.Crm.Application.Controls.AppNavBar..ctor()
   at ASP.staging_main_aspx.__BuildControlcrmAppNav()
   at ASP.staging_main_aspx.__BuildControlTree(staging_main_aspx __ctrl)
   at ASP.staging_main_aspx.FrameworkInitialize()
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Additionally, there were occasional messages in the ADFS Admin Event Log with the message “Microsoft.IdentityServer.Service.Policy.PolicyServer.Engine.InvalidAuthenticationTypePolicyException: MSIS7102: Requested Authentication Method is not supported on the STS.”

I spent quite a bit of time trying to figure out what was going on before this article on the Dynamics CRM Community Forums triggered something in my brain that maybe there was a versioning problem of some kind.
Deployment Manager showed that my existing servers were version 8.2.0000.0479 while my new server was version 8.0.0000.1088 .
A quick search on Google revealed that I was missing Update 2 from the new server. After applying Update 2 (which took about 45 minutes) and restarting the server, browsing the web server locally worked as well as accessing the web server through its associated Load Balancer.

Need Assistance?

Speak with an Engineer

Not sure where to start? We're here to help walk you through the process, understand your environment, and provide the guidance you need to achieve cybersecurity maturity. Get in touch today.

Get in Touch