Hi, we have the same issue starting from yesterday (EPiServer.CMS 10.3.2). No solution yet.
For now the original error is fixed, but and we end up with another very informative error (site works right after deployment, but after some time it stops working [returns 500]):
Event code: 3008 Event message: A configuration error has occurred. Event time: 6/30/2017 11:45:43 AM Event time (UTC): 6/30/2017 11:45:43 AM Event ID: fe6874ba954d49c2a87a1a86d83b9edf Event sequence: 407 Event occurrence: 1 Event detail code: 0 Application information: Application domain: /LM/W3SVC/815313056/ROOT-17-131432961332995379 Trust level: Full Application Virtual Path: / Application Path: D:\home\site\wwwroot\ Machine name: RD00155D670613 Process information: Process ID: 9788 Process name: w3wp.exe Account name: IIS APPPOOL\moller-forhandlere-web-dev Exception information: Exception type: ConfigurationErrorsException Exception message: The configuration file has been changed by another program. (D:\home\site\wwwroot\web.config) 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 System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Web.Configuration.RuntimeConfig.GetSectionObject(String sectionName) at System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index) at System.Web.Configuration.RuntimeConfig.get_Globalization() at System.Web.ThreadContext.SetRequestLevelCulture() at System.Web.ThreadContext.AssociateWithCurrentThread(Boolean setImpersonationContext) at System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext) at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) Request information: Request URL: https://audi-moller-bil-oslo-vest.creunacloud-test.net:443/EPiServer/Cms/ Request path: /EPiServer/Cms/ User host address: 91.221.167.8 User: Is authenticated: False Authentication Type: Thread account name: IIS APPPOOL\moller-forhandlere-web-dev Thread information: Thread ID: 142 Thread account name: IIS APPPOOL\moller-forhandlere-web-dev Is impersonating: False Stack trace: 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 System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Web.Configuration.RuntimeConfig.GetSectionObject(String sectionName) at System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index) at System.Web.Configuration.RuntimeConfig.get_Globalization() at System.Web.ThreadContext.SetRequestLevelCulture() at System.Web.ThreadContext.AssociateWithCurrentThread(Boolean setImpersonationContext) at System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext) at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) Custom event details:
with the following in the EPiServerErrors.log:
2017-06-30 11:46:01,460 [161] ERROR EPiServer.Global: 1.2.5 Unhandled exception in ASP.NET System.Configuration.ConfigurationErrorsException: The configuration file has been changed by another program. (D:\home\site\wwwroot\web.config) 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 System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Web.Configuration.RuntimeConfig.GetSectionObject(String sectionName) at System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index) at System.Web.Configuration.RuntimeConfig.get_Authorization() at System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal(String virtualPath, IPrincipal user, String verb) at EPiServer.Security.PrincipalInfo.HasPathAccess(String path) at EPiServer.Web.Internal.DefaultDisplayChannelService.GetActiveChannels(HttpContextBase context) at EPiServer.Web.Internal.TemplateResolverImplementation.ResolveCore(HttpContextBase httpContext, ContentType contentType, Type itemType, Object itemToRender, TemplateTypeCategories category, String tag) at EPiServer.Web.TemplateResolver.Resolve(HttpContextBase httpContext, Object itemToRender, TemplateTypeCategories templateTypeCategory, ContextMode contextMode) at EPiServer.Web.Mvc.Internal.ExistingActionRouteConstraint.Match(Route route, SegmentContext routingContext, String parameterName) at EPiServer.Web.Routing.Internal.DefaultContentRoute.MatchConstraints(SegmentContext segmentContext, HttpContextBase context) at EPiServer.Web.Routing.Internal.DefaultContentRoute.GetRouteData(HttpContextBase httpContext) at System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) at EPiServer.Web.Routing.RouteCollectionExtensions.HandleRouteData(RouteCollection routes, HttpContextBase context) at EPiServer.Global.DefaultDocumentHandling(Object sender, EventArgs e) at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) System.Configuration.ConfigurationErrorsException: The configuration file has been changed by another program. (D:\home\site\wwwroot\web.config) 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 System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Web.Configuration.RuntimeConfig.GetSectionObject(String sectionName) at System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index) at System.Web.Configuration.RuntimeConfig.get_Authorization() at System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal(String virtualPath, IPrincipal user, String verb) at EPiServer.Security.PrincipalInfo.HasPathAccess(String path) at EPiServer.Web.Internal.DefaultDisplayChannelService.GetActiveChannels(HttpContextBase context) at EPiServer.Web.Internal.TemplateResolverImplementation.ResolveCore(HttpContextBase httpContext, ContentType contentType, Type itemType, Object itemToRender, TemplateTypeCategories category, String tag) at EPiServer.Web.TemplateResolver.Resolve(HttpContextBase httpContext, Object itemToRender, TemplateTypeCategories templateTypeCategory, ContextMode contextMode) at EPiServer.Web.Mvc.Internal.ExistingActionRouteConstraint.Match(Route route, SegmentContext routingContext, String parameterName) at EPiServer.Web.Routing.Internal.DefaultContentRoute.MatchConstraints(SegmentContext segmentContext, HttpContextBase context) at EPiServer.Web.Routing.Internal.DefaultContentRoute.GetRouteData(HttpContextBase httpContext) at System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) at EPiServer.Web.Routing.RouteCollectionExtensions.HandleRouteData(RouteCollection routes, HttpContextBase context) at EPiServer.Global.DefaultDocumentHandling(Object sender, EventArgs e) at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
tried <add key="WEBSITE_DYNAMIC_CACHE" value="0" /> with no luck; found a thread where similar problem is discussed https://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2017/6/the-configuration-file-has-been-changed-by-another-program/
Hi Vladmir,
I came across this article that talks about Password hashing causing the issue. And also increase in CPU utilization. We do see a high CPU utilization.
We are using "HMACSHA512" hasalgorithm. Not sure if it is related to this particular algorithm and cmsmembershipprovider.
Our webApp has 2 instances in Azure and normally one of the instance gets hit by this error. So yes, there is possibility of other application trying to change the web.config and causing this error which is talked about in the other article you referenced. We will wait for the epi to fix the ticket that is open on this.
Oops! missed the link i am talking about hashing:
Here
https://dzone.com/articles/stronger-password-hashing-net
Hi Sapna,
We fixed the initial error message be turning windows membership off and ended up with "The configuration file has been changed by another program", so it's definitely not hashing the root cause of the problem for us :)
Hi Sapna & Vladimir,
Have you found a solution for what Sapna reported initially? We started experiencing the same issue today (our app is also hosted in Epi Azure) and I don't have many leads on where to look to find the cause of this issue and how to fix it.
Any help would me much appreciated!
Episerver.CMS : 9.12.2
Episerver.CMS.Core : 9.12.2
EPiServer.Commerce : 9.24.1
EPiServer.Commerce.Core: 9.24.1
EPiServer.Commerce.Azure : 9.24.1
This is hosted on Azure web app. I get this error on production in event log:
Exception information:
Exception type: ConfigurationErrorsException
Exception message: Unsecured Passwords Format Detected. The Membership Provider that contains the unsecure passwords format is: WindowsMembershipProvider. The obsoleted password format is: Encrypted. For more information, see https://go.microsoft.com/fwlink/?linkid=834784.
It throws this error. The azure performance graph that is otherwise stable suddenly goes down and immediately crashes the application.
Has anybody seen this before.