应用程序抛出 web.config 被修改的异常,但事实并非如此

App throws exception that web.config was modified but it#39;s not(应用程序抛出 web.config 被修改的异常,但事实并非如此)
本文介绍了应用程序抛出 web.config 被修改的异常,但事实并非如此的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I'm facing strange problem on azure app service with my asp.net web forms site.

Got exception:

ConfigurationErrorsExceptionSystem.Configuration.BaseConfigurationRecord in EvaluateOne

The configuration file has been changed by another program. (D:homesitewwwrootweb.config)

ConfigurationErrorsException: The configuration file has been changed by another program. (D:homesitewwwrootweb.config)
  Module "System.Configuration.BaseConfigurationRecord", line 72, col 0, in EvaluateOne
System.Object EvaluateOne(System.String[], System.Configuration.SectionInput, Boolean, System.Configuration.FactoryRecord, System.Configuration.SectionRecord, System.Object)
  Module "System.Configuration.BaseConfigurationRecord", line 515, col 0, in Evaluate
Boolean Evaluate(System.Configuration.FactoryRecord, System.Configuration.SectionRecord, System.Object, Boolean, Boolean, System.Object ByRef, System.Object ByRef)
  Module "System.Configuration.BaseConfigurationRecord", line 666, col 0, in GetSectionRecursive
Void GetSectionRecursive(System.String, Boolean, Boolean, Boolean, Boolean, System.Object ByRef, System.Object ByRef)
  Module "System.Configuration.BaseConfigurationRecord", line 0, col 0, in GetSection
System.Object GetSection(System.String)
  Module "System.Web.Configuration.RuntimeConfig", line 0, col 0, in GetSectionObject
System.Object GetSectionObject(System.String)
  Module "System.Web.Configuration.RuntimeConfig", line 19, col 0, in GetSection
System.Object GetSection(System.String, System.Type, ResultsIndex)
  Module "System.Web.Configuration.RuntimeConfig", line 0, col 0, in get_Authorization
System.Web.Configuration.AuthorizationSection get_Authorization()
  Module "System.Web.Security.UrlAuthorizationModule", line 153, col 0, in OnEnter
Void OnEnter(System.Object, System.EventArgs)
  Module "System.Web.HttpApplication+SyncEventExecutionStep", line 65, col 0, in System.Web.HttpApplication.IExecutionStep.Execute
Void System.Web.HttpApplication.IExecutionStep.Execute()
  Module "System.Web.HttpApplication", line 21, col 0, in ExecuteStep
System.Exception ExecuteStep(IExecutionStep, Boolean ByRef)

YSOD with Exception is throw after 10-15minutes application deploy.App is not restarting it's just showing YSOD.

But no one edited web.config. Date modified didn't change and nor did the content - compared with win merge and files are identical (one straight after deploy with one that throws exception).

After manually saving web.config (without any changes) file or re deploying app problem is resolved for next 10-15 minutes.

@Edit1

Tried also:

  • deploy it as another app service - not working
  • run it locally not on azure (working so it seems to be connected with azure app service host).

@Edit2

We got first error in logs from 6.6.2017 and it occured from time to time (i'd say once a week. But it's test environment with very low traffic) till two days ago (27.06.2017). Then It just exploded and happens all the time.

@Edit3

I Downloaded source files from symbol server and debugged it.

Current version returned from method GetStreamVersion is strange. Last write time is 10 minutes before creation time. (maybe it's somehow connected with 10-15 before app crashes?)

Where Last version which is compared with current version is normal. Created before last write.

No idea why creation time is modified. I double checked it on kudu with powershell and everything seems to be ok (values are the same as in lastVersion).

currentVersion:

  • CreatedTime: {6/29/2017 10:28:30 AM}
  • LastWriteTime: {6/29/2017 10:17:18 AM}

lastVersion:

  • CreatedTime: {6/28/2017 8:50:11 AM}
  • LastWriteTime: {6/29/2017 10:17:18 AM}

Times taken with kudu for web.config:

  • CreationTime : 6/28/2017 8:50:11 AM
  • LastWriteTime : 6/29/2017 10:17:18 AM
  • LastAccessTime : 6/28/2017 8:50:11 AM

https://github.com/Microsoft/referencesource/blob/master/System.Configuration/System/Configuration/BaseConfigurationRecord.cs#L3988

解决方案

Received response from the Azure team:

Setting WEBSITE_DYNAMIC_CACHE_FCN_MODE = 1 try it first, as per issue behavior it should address the issue. If this setting does not heal we need to go for WEBSITE_DYNAMIC_CACHE = 0

Side note:

Setting WEBSITE_DYNAMIC_CACHE_FCN_MODE = 1 should not lead to performance impact. Setting WEBSITE_DYNAMIC_CACHE = 0 may slightly impact the performance during initial loads if website content size is huge.

They are still investigating why this problem occurred all the sudden.

这篇关于应用程序抛出 web.config 被修改的异常,但事实并非如此的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)