Unknown connection string. Name: 'web' error on Reporting and Processing instances


Description

The following error message can appear in log files of Reporting and Processing instances:

ERROR Exception
Exception: System.Reflection.TargetInvocationException
Message: Exception has been thrown by the target of an invocation.
Source: mscorlib
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Sitecore.Reflection.ReflectionUtil.InvokeMethod(MethodInfo method, Object[] parameters, Object obj)
   at Sitecore.Jobs.JobRunner.RunMethod(JobArgs args)
   at (Object , Object )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists)
   at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain)
   at Sitecore.Jobs.Job.DoExecute()
   at Sitecore.Jobs.Job.ThreadEntry(Object state)

Nested Exception

Exception: System.InvalidOperationException
Message: Unknown connection string. Name: 'web'
Source: Sitecore.Kernel
   at Sitecore.Configuration.DefaultSettings.GetConnectionString(String connectionStringName)
   at Sitecore.Configuration.DefaultFactory.CreateFromConnectionStringName(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper)
   at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.GetConstructorParameters(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper)
   at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateFromReference(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper)
   at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.GetConstructorParameters(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper)
   at Sitecore.Configuration.DefaultFactory.CreateObject(XmlNode configNode, Boolean assert)
   at Sitecore.Data.Properties.DefaultPropertyStoreProvider.ReadPropetiesStores()
   at Sitecore.Data.Properties.DefaultPropertyStoreProvider.InitializeStoreProvider()
   at Sitecore.Data.Properties.DefaultPropertyStoreProvider.get_DefaultStore()
   at Sitecore.Data.Properties.DefaultPropertyStoreProvider.GetPropertyKeys(String prefix)
   at Sitecore.Web.Authentication.DefaultTicketManager.GetTicketKeyList()
   at Sitecore.Web.Authentication.DefaultTicketManager.GetTicketIDs()
   at Sitecore.Tasks.CleanupAuthenticationTicketsAgent.Run()

The error message appears due to the fact that the Reporting and Processing servers do not need the web connection string. For more information, see the Scaling and configuring xDB Reporting and Scaling and configuring xDB Processing articles.

Also, the Reporting and Processing instances do not need the Sitecore.Tasks.CleanupAuthenticationTicketsAgent agent, which runs by default on all server roles. 

Solution

To resolve the issue, apply the following workaround: