There must be one and only one site map in the system

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Let's talk

If you want to get a free consultation without any obligations, fill in the form below and we'll get in touch with you.