配置文件已被其他程序更改

时间:2010-03-23 16:00:05

标签: asp.net web-config

我收到以下错误,系统认为正在修改web.config文件。实际文件显示自上次发布站点以来web.config文件修改日期没有任何更改。重定向到另一个页面时会出现此问题,但发生问题的页面将发生更改,并且访问该站点的任何用户都将存在错误。通过重新发布应用程序可以暂时缓解此问题,但在大约24小时内问题将会恢复。任何想法为什么它认为文件正在改变,即使它不是?

  

当前用户:NT AUTHORITY \ NETWORK   服务目标网站:   BaseConfigurationRecord.EvaluateOne   错误:   (System.Configuration.ConfigurationErrorsException)   配置文件已经存在   被另一个程序改变了。   (E:\ PEC \ web.config中)

     

StackTrace:at   System.Configuration.BaseConfigurationRecord.EvaluateOne(字符串[]   键,SectionInput输入,布尔值   isTrusted,FactoryRecord   factoryRecord,SectionRecord   sectionRecord,Object parentResult)
  在   System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord   factoryRecord,SectionRecord   sectionRecord,Object parentResult,   Boolean getLkg,Boolean   getRuntimeObject,Object&结果,   对象和放大器; resultRuntimeObject)at   System.Configuration.BaseConfigurationRecord.GetSectionRecursive(字符串   configKey,Boolean getLkg,Boolean   checkPermission,布尔值   getRuntimeObject,Boolean   requestIsHere,Object&结果,对象&   resultRuntimeObject)at   System.Configuration.BaseConfigurationRecord.GetSection(字符串   configKey)   System.Web.Configuration.RuntimeConfig.GetSectionObject(字符串   sectionName)at   System.Web.Configuration.RuntimeConfig.GetSection(字符串   sectionName,Type type,ResultsIndex   指数)   System.Web.Configuration.RuntimeConfig.get_Authorization()   在   System.Web.Security.UrlAuthorizationModule.OnEnter(对象   source,EventArgs eventArgs)at   System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()   在   System.Web.HttpApplication.ExecuteStep(IExecutionStep   步,布尔& completedSynchronously)

3 个答案:

答案 0 :(得分:1)

我们发现此问题是由IIS中的两个不同应用程序配置为指向同一目录引起的 - 我们有一个www.mysite.com和preview.mysite.com;我们使用msdeploy来设置预览来克隆主站点,而没有意识到www.mysite.com/foo是一个独立的IIS虚拟应用程序 - 所以我们最终得到了www.mysite.com/foo和preview.mysite.com/foo都指向同一个文件夹,并且“争夺”其中一个拥有配置文件等等。

删除第二个虚拟应用程序解决了问题。

答案 1 :(得分:0)

对我来说,这个错误是有一个Web部署项目,其中包含web配置替换以及指向web.config中外部配置文件的链接,如:

看来你只能拥有一个或另一个。我写了一篇博文: http://blog.coultard.com/2012/02/fix-for-web-deployment-project.html

答案 2 :(得分:0)

我在Visual Studio中开发的网站上遇到过这种情况。

我设法通过删除网站的整个文件夹(物理路径),通过浏览器访问网站,恢复网站以及最终从Visual Studio再次发布网站来解决错误。