Файл конфигурации был изменен другой программой - PullRequest
6 голосов
/ 23 марта 2010

Я получаю следующую ошибку, когда система считает, что файл web.config изменяется. Фактический файл не показывает изменений в дате изменения файла web.config с момента последней публикации сайта. Проблема появляется при перенаправлении на другую страницу, хотя страницы, на которых возникает проблема, изменятся, и ошибка будет существовать для любого пользователя, который обращается к сайту. Проблема может быть временно устранена путем повторной публикации приложения, но примерно через 24 часа проблема вернется. Любые идеи, почему он считает, что файл меняется, хотя это не так?

Текущий пользователь: NT AUTHORITY \ NETWORK СЕРВИС Целевой сайт: BaseConfigurationRecord.EvaluateOne Ошибка: (System.Configuration.ConfigurationErrorsException) Файл конфигурации был изменено другой программой. (E: \ PEC \ web.config)

StackTrace: в System.Configuration.BaseConfigurationRecord.EvaluateOne (String [] ключи, секция ввода, логическое значение isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
в System.Configuration.BaseConfigurationRecord.Evaluate (FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object & result, Object & resultRuntimeObject) в System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String configKey, Boolean, getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Объект & результат, Объект & resultRuntimeObject) в System.Configuration.BaseConfigurationRecord.GetSection (String configKey) в System.Web.Configuration.RuntimeConfig.GetSectionObject (String sectionName) в System.Web.Configuration.RuntimeConfig.GetSection (String sectionName, Тип типа, ResultsIndex индекс) в System.Web.Configuration.RuntimeConfig.get_Authorization () в System.Web.Security.UrlAuthorizationModule.OnEnter (Объект источник, EventArgs eventArgs) в System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () в System.Web.HttpApplication.ExecuteStep (IExecutionStep шаг, логическое и завершено синхронно)

Ответы [ 3 ]

1 голос
/ 14 июня 2011

Мы обнаружили, что эта проблема была вызвана тем, что два разных приложения в IIS были настроены так, чтобы указывать на один и тот же каталог - у нас были www.mysite.com и preview.mysite.com; мы настроили предварительный просмотр, используя msdeploy для клонирования основного сайта, и не поняли, что www.mysite.com/foo является автономным виртуальным приложением IIS - поэтому мы получили www.mysite.com/foo и Предварительный просмотр mysite.com/foo указывает на одну и ту же папку и «борется» за то, кто из них владел файлом конфигурации, и т. д.

Удаление второго виртуального приложения устранило проблему.

0 голосов
/ 09 апреля 2013

Я испытал это на сайте, который разрабатываю в Visual Studio.

Мне удалось устранить ошибку, удалив всю папку сайта (физический путь), получив доступ к сайту через браузер, перезагрузив сайт и, наконец, снова опубликовав сайт из Visual Studio.

0 голосов
/ 03 февраля 2012

Для меня этой ошибкой было наличие проекта веб-развертывания с заменой веб-конфигурации И ссылкой на внешний файл конфигурации в файле web.config, например:

Кажется, вы можете иметь только один или другой. Я написал сообщение в блоге об этом: http://blog.coultard.com/2012/02/fix-for-web-deployment-project.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...