I've come across an odd scenario and I'm drawing a blank. Perhaps one of my peers here will have an idea.

We have a custom navigation solution which consumes and builds on the OOTB navigation provider. This is deployed through two features. The first is a web application feature, which adds the custom sitemap provider to the providers node of the web.config. The second is a web scoped feature which activates the custom navigation on that specific web.

We deployed the solution through our Dev and QA environments, and everything worked normally, no issues on activation, no issues on configuration.

When we promoted it through to Production, it blew up. We're seeing an error in the ULS saying it can't find the custom sitemap provider.

We've validated that the web.config entries are present on all servers, manually confirmed that the DLL's had been deployed by the solution, confirmed web application user policies, etc, and confirmed all of the SQL permissions to the content database; everything matches the configuration of Dev and QA. Permissions are a one-for-one match, and we used a DB attach to migrate the environment from QA to Production, so everything in the content database matches QA.

We've also tried deactivating and retracting the solution, and trying it all over again. Additionally, we brought the troubled production environment's content database back to the dev environment, and everything works, so it's definitely an environmental issue with production, but we've been unable to isolate where the fault is.

Any thoughts?

System.Web.HttpExecution: The SiteMapProvider 'CustomNavigationProvider' cannot be found.

We're also seeing:

Detected use of SPRequest for previously closed SPWeb object. Which seems to be calling Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren. Publishing is activated on all of the webs, configuration is the same as in Dev and QA. Errors do not show in Dev or QA.

  • Your title says Access denied, but your text that it can not find the provider. Is it both? – Robert Lindgren Jun 20 '13 at 14:28
  • 1
    Edited title. Sorry about that, we initially saw an Access Denied error, but don't believe that to be related, it's no longer appearing. Also added error messages. – webdes03 Jun 20 '13 at 14:31
  • Just an observation as food for thought: What deviations are there form your DEV, QA, STAGE, PRD that are so drastic that you would be getting production failures? How closely are your pre-production environments modelling PRD? Ideal scenario is that , DEV, QA, STAGE are exact images of PRD. – Ray Jun 20 '13 at 15:51
  • From an server and farm architectural perspective they match. Web application configuration and such also matches. The only variance is in the accounts used, but the permissions model itself matches. This is a new web application, so there's a risk that something got missed when they did the kerberos configuration, though I wouldn't think that'd be in play here. Both Dev and QA have lower system resources, but the architecture itself is an exact match. – webdes03 Jun 20 '13 at 15:54
  • I have run into a similar issue where the custom sitemap provider is working for internal site but not working for external site(accessible for other people over the internet). And the error is similar to the mentioned error on the question. Checked config files, master pages and all shorts of troubleshooting mechanism I found on google. But no solution till now. Any help/ pointer for the same? – ch.smrutiranjan parida Jan 11 '17 at 10:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.