I'm having a bit of a problem with our Content Delivery servers. We are unable to remove the master database without it blowing up. Our current information is below:
Sitecore.NET 6.5.0 (rev. 111230)
December 30, 2011
.NET Framework 4.0.30319.239
Database version: 500
The error and stack trace that we are receiving is:
[InvalidOperationException: Unknown connection string. Name: 'master']
Sitecore.Configuration.Settings.GetConnectionString(String connectionStringName) +364
Sitecore.Configuration.Factory.CreateFromConnectionStringName(XmlNode configNode, String[] parameters, Boolean assert) +106
Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +164
Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert) +110
Sitecore.Configuration.Factory.GetConstructorParameters(XmlNode configNode, String[] parameters, Boolean assert) +209
Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert) +94
Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +141
Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +424
Sitecore.Configuration.Factory.CreateFromReference(XmlNode configNode, String[] parameters, Boolean assert) +194
Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +118
Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert) +930
Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, String[] parameters, Object obj, Boolean assert, Boolean deferred, IFactoryHelper helper) +581
Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +296
Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +424
Sitecore.Configuration.Factory.GetDatabase(String name, Boolean assert) +185
Sitecore.Configuration.Factory.GetDatabases() +152
Sitecore.Data.Managers.HistoryManager.InitializeEventHandlers() +49
Sitecore.Pipelines.Loader.InitializeManagers.Process(PipelineArgs args) +14
(Object , Object[] ) +80
Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +191
Sitecore.Nexus.Web.HttpModule.Application_Start() +146
Sitecore.Nexus.Web.HttpModule.Init(HttpApplication app) +603
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +575
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +352
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +407
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +375
[HttpException (0x80004005): Unknown connection string. Name: 'master']
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11700608
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4868805
It appears that when the History Manager is initializing it is requesting information from the master database at some point.
After adding SwitchMasterToWeb.config to the app_config/include folder I now get this message:
[InvalidOperationException: Could not find configuration node: databases/database[@id='master']]
Sitecore.Diagnostics.Assert.IsTrue(Boolean condition, String message) +57
Sitecore.Configuration.Factory.GetConfigNode(String xpath, Boolean assert) +279
Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +144
Sitecore.Configuration.Factory.GetDatabase(String name) +169
LuceneSearch.LuceneSearch.LuceneSearchBox.Page_Load(Object sender, EventArgs e) in C:\xyz\Website\sitecore modules\LuceneSearch\LuceneSearchBox.ascx.cs:29
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
System.Web.UI.Control.LoadRecursive() +71
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064
Your search index configuration likely contains references to both master and web databases. You'll need to patch it or replace it on the CD server to just include a web database location .