Подтвердить что ты не робот

Сохранение файла "web.config" требует, чтобы вы остановили ошибку сеанса отладки

Я пытаюсь внести изменения в web.config после запуска приложения. Он дает следующую ошибку.

Сохранение файла "web.config" требует, чтобы вы прекратили сеанс отладки.
Вы хотите остановить отладку сейчас?

Я использую Visual Studio 2012.

enter image description here

Я думал, что он должен что-то сделать с функцией Enable Edit and Continue в визуальной студии. Все еще не работает.

4b9b3361

Ответ 1

Я просто хочу добавить что-то в комментарий, который janv8000 сделал о редактировании и продолжении, потому что у меня была такая же проблема и мне удалось ее отсортировать.

Чтобы дать некоторый фон, у меня было существующее веб-приложение, созданное в VS 2012. Когда я отлаживаю этот проект в VS 2013, я могу редактировать файл web.config без перезагрузки отладчика. Затем я создал новое веб-приложение в VS 2013 и обнаружил, что я получил сообщение об ошибке в исходном вопросе, когда я попытался отредактировать файл web.config.

Решением этого было отключить Edit и Continue для отдельного проекта. Причина, по которой я подчеркиваю это, заключается в том, что в "Инструменты- > Параметры- > Отладчик для редактирования и продолжения" существует глобальный параметр отладчика. Это не вариант, который вызывает эту проблему.

Чтобы решить эту проблему:

  • Перейдите к настройкам проекта для своего веб-приложения (щелкните его правой кнопкой мыши в проводнике решений и перейдите в "Свойства" ).
  • Перейдите на вкладку "Веб".
  • В нижней части этой вкладки находится раздел "Отладчики".
  • Снимите флажок "Включить редактирование и продолжить".

Ответ 2

Прежде всего, позвольте мне отметить быстрый факт. Здесь есть два разных типа проектов.

  • A WebSite, который создается с помощью выбора New WebSite в меню Visual Studio.
  • A WebApplication, который создается путем выбора New Project и выбора ASP.Net Web Forms Appplication

Теперь причина, указывающая на это, проста.

Первая опция позволяет вам изменять ваш web.config без выполнения приложения reset (только при отладке). Это связано с тем, что файлы проекта WebSite скомпилированы, поскольку запрашиваются страницы\файлы. Поэтому каждый раз, когда вы запрашиваете страницу, код компилируется. Вот почему вы можете без проблем изменять файлы кода при отладке.

Второй тип - это скомпилированное приложение. Поэтому весь код компилируется до выполнения. В этом случае AppPool (IIS, IISExpress) следит за изменениями в этом файле. Если с этим файлом произойдут изменения, приложение ДОЛЖНО перезапустить, чтобы изменения вступили в силу. Теперь нет способа остановить это поведение как часть ядра AppPool.

Вот отрывок из MSDN:

Изменения конфигурации Причина a Перезапуск домена приложения

Изменения в настройках конфигурации в файлах Web.config косвенно вызывают домен приложения для перезагрузки. Такое поведение происходит по дизайну. Вы может необязательно использовать атрибут configSource для ссылки на внешний файлы конфигурации, которые не вызывают перезагрузки при внесении изменений. Для получения дополнительной информации см. ConfigSource в общих атрибутах Inherited по элементам раздела.

Попытка изменить файл конфигурации на тот, у кого нет разрешения на редактирование файла, не вызовет перезапуск домена приложения.

Полная страница MSDN. http://msdn.microsoft.com/en-us/library/ackhksh7.aspx

Как говорится здесь, есть один путь. Используя configSource для ссылки на внешние файлы конфигурации, которые вы можете изменить без проблем.

Надеюсь, это поможет.

Ответ 3

На самом деле, у меня была та же проблема в веб-приложении с использованием Visual Studio 2013. До этого я использовал VS2010 и не имел проблем, как вы упомянули.

Я нашел решение не использовать IIS Express (: (я не мог понять способ использования IIS Express)

1- Просто щелкните правой кнопкой мыши по вашему проекту и выберите "Свойства".

2- На вкладке "Веб" выберите "Локальный IIS" в разделе "Серверы" на странице.

3- Нажмите кнопку "Создать виртуальный каталог".

Виола, теперь вы развернули ее на iis с портом 80. (Так будет в разделе "Веб-сайт по умолчанию" при запуске inetmgr (диспетчер IIS), конечно, если у вас нет другого сайта, работающего на порту 80)

Если вам нужен пользовательский порт (т.е. 1234):

Просто создайте новый сайт в диспетчере IIS с портом 1234, а затем отредактируйте свой url в свойстве проекта в VS2013 как: "http://localhost:1234/Your.Project.Name"

Если кто-нибудь показывает, как редактировать и продолжить web.config с помощью IIS Express, также будет оценено.

Ответ 4

Получил ту же ошибку в VS 2019. Следующее исправило ее для меня: Перейдите в список "Отладочные браузеры" (как на снимке экрана), откройте выпадающий список> отладка сценариев и отключите его:

enter image description here