Nov 28, 2016
Jun 27, 2018
CMS Core
Closed, Fixed and tested
1. Add a regex into the LinkValidation element in web.config:
<linkValidator externalLinkErrorThreshold="100" recheckInterval="7.00:00:00"> <excludePatterns> <add regex=".*doc"/> </excludePatterns> </linkValidator>
2. Make a change to system settings (Admin -> System Settings -> Enable Projects) and reload the site.
3. You receive the below error because, in the web.config, the configuration has automatically been changed to:
<linkValidator externalLinkErrorThreshold="100" recheckInterval="7.00:00:00"> <excludePatterns regex=".*doc" /> </linkValidator>
----------------------------------------
Error in the browser:
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Unrecognized attribute 'regex'. Note that attribute names are case-sensitive.
Source Error:
Line 272: </imageEditor>
Line 273: <linkValidator externalLinkErrorThreshold="100" recheckInterval="7.00:00:00">
Line 274: <excludePatterns regex=".*doc" />
Line 275: </linkValidator>
Line 276: </episerver>
Source File: F:\Visual Studio 2015\Projects\cms10b\cms10b\web.config Line: 274
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1055.0
Stacktrace in Episerver logfile:
2016-11-28 11:14:43,082 [18] ERROR EPiServer.Framework.Initialization.InitializationEngine: Initialize action failed for 'Initialize on class EPiServer.Framework.FrameworkInitialization, EPiServer.Framework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7'
System.Configuration.ConfigurationErrorsException: Unrecognized attribute 'regex'. Note that attribute names are case-sensitive. (F:\Visual Studio 2015\Projects\cms10b\cms10b\web.config line 274)
at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at EPiServer.Framework.Configuration.FileConfigurationSource.Get[T](String path)
at EPiServer.Configuration.EPiServerSection.EnsureCurrentConfig()
at EPiServer.Configuration.EPiServerSection.get_Instance()
at EPiServer.Configuration.Settings.get_Instance()
at EPiServer.UriSupport.get_InternalUtilUrl()
at EPiServer.Cms.Shell.VppInitializer.CreateProviders(InitializationEngine context)
at EPiServer.Web.Hosting.VirtualPathRegistrationHandler.<>c_DisplayClass8_0.<RegisterVirtualPathProvidersFromCode>b_2(IVirtualPathProviderModule p)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.<SelectManyIterator>d__16`2.MoveNext()
at EPiServer.Web.Hosting.VirtualPathRegistrationHandler.RegisterVirtualPathProvidersFromCode(InitializationEngine context)
at EPiServer.Web.Hosting.VirtualPathRegistrationHandler.RegisterVirtualPathProviders(InitializationEngine context, ProviderSettingsCollection settings)
at EPiServer.Framework.FrameworkInitialization.RegisterVirtualPathProviders(InitializationEngine context)
at EPiServer.Framework.FrameworkInitialization.Initialize(InitializationEngine context)
at EPiServer.Framework.Initialization.Internal.ModuleNode.<>c_DisplayClass3_0.<Initialize>b_0()
at EPiServer.Framework.Initialization.Internal.ModuleNode.Execute(Action a, String key)
at EPiServer.Framework.Initialization.Internal.ModuleNode.Initialize(InitializationEngine context)
at EPiServer.Framework.Initialization.InitializationEngine.InitializeModules()
System.Configuration.ConfigurationErrorsException: Unrecognized attribute 'regex'. Note that attribute names are case-sensitive. (F:\Visual Studio 2015\Projects\cms10b\cms10b\web.config line 274)
at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at EPiServer.Framework.Configuration.FileConfigurationSource.Get[T](String path)
at EPiServer.Configuration.EPiServerSection.EnsureCurrentConfig()
at EPiServer.Configuration.EPiServerSection.get_Instance()
at EPiServer.Configuration.Settings.get_Instance()
at EPiServer.UriSupport.get_InternalUtilUrl()
at EPiServer.Cms.Shell.VppInitializer.CreateProviders(InitializationEngine context)
at EPiServer.Web.Hosting.VirtualPathRegistrationHandler.<>c_DisplayClass8_0.<RegisterVirtualPathProvidersFromCode>b_2(IVirtualPathProviderModule p)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.<SelectManyIterator>d__16`2.MoveNext()
at EPiServer.Web.Hosting.VirtualPathRegistrationHandler.RegisterVirtualPathProvidersFromCode(InitializationEngine context)
at EPiServer.Web.Hosting.VirtualPathRegistrationHandler.RegisterVirtualPathProviders(InitializationEngine context, ProviderSettingsCollection settings)
at EPiServer.Framework.FrameworkInitialization.RegisterVirtualPathProviders(InitializationEngine context)
at EPiServer.Framework.FrameworkInitialization.Initialize(InitializationEngine context)
at EPiServer.Framework.Initialization.Internal.ModuleNode.<>c_DisplayClass3_0.<Initialize>b_0()
at EPiServer.Framework.Initialization.Internal.ModuleNode.Execute(Action a, String key)
at EPiServer.Framework.Initialization.Internal.ModuleNode.Initialize(InitializationEngine context)
at EPiServer.Framework.Initialization.InitializationEngine.InitializeModules()
Workaround:
Change back the configuration from
<linkValidator externalLinkErrorThreshold="100" recheckInterval="7.00:00:00">
<excludePatterns regex=".*doc" />
</linkValidator>
to
<linkValidator externalLinkErrorThreshold="100" recheckInterval="7.00:00:00">
<excludePatterns>
<add regex=".*doc"/>
</excludePatterns>
</linkValidator>