保存文件'web.config'需要您停止调试会话错误

Kri*_*hna 22 asp.net web-config visual-studio-2012

我正在尝试在运行应用程序后对web.config进行更改.它给出以下错误.

保存文件'web.config'需要您停止调试会话.
你想现在停止调试吗?

我正在使用Visual Studio 2012.

在此输入图像描述

我认为它必须Enable Edit and Continue在visual studio中使用功能.仍然无法正常工作.

Ada*_*lly 9

我只想在janv8000关于编辑和继续的评论中添加一些内容,因为我刚遇到同样的问题并设法对其进行排序.

为了给出一些背景知识,我在VS 2012中创建了一个现有的Web应用程序.当我在VS 2013中调试这个项目时,我可以愉快地编辑web.config文件而无需重新启动调试器.然后我在VS 2013中创建了一个新的Web应用程序,发现当我尝试编辑web.config文件时,我在原始问题中收到了错误消息.

解决方案是禁用单个项目的编辑和继续.我强调这一点的原因是因为在Tools-> Options-> Debugger中有一个全局调试器设置用于编辑和继续.这不是导致此问题的选项.

解决它:

  1. 转到Web应用程序的项目首选项(在解决方案资源管理器中右键单击它,然后转到"属性").
  2. 转到"Web"选项卡.
  3. 此选项卡的底部是一个名为"Debuggers"的部分.
  4. 取消选中"启用编辑并继续".


Nic*_*ico 1

首先让我指出一个事实。这里有两种不同类型的项目。

  1. 通过从 Visual Studio 菜单中选择WebSite来创建。New WebSite
  2. 通过选择和选择WebApplication创建的ANew ProjectASP.Net Web Forms Appplication

现在指出这一点的原因很简单。

第一个选项允许您更改 web.config,而无需执行应用程序重置(仅在调试时)。这是因为WebSite项目文件是根据请求的页面\文件来编译的。因此,每次您请求页面时,都会编译代码。这也是为什么您可以在调试时毫无问题地更改代码文件。

第二种类型是编译的应用程序。因此,所有代码都是在运行之前编译的。在这种情况下,AppPool(IIS、IISExpress)会监视对此文件的更改。如果此文件发生更改,应用程序必须重新启动才能使更改生效。现在没有办法阻止这种行为作为其核心的一部分AppPool

以下是 MSDN 的摘录:

配置更改导致应用程序域重新启动

对 Web.config 文件中的配置设置的更改会间接导致应用程序域重新启动。此行为是设计造成的。您可以选择使用 configSource 属性来引用外部配置文件,这些文件在进行更改时不会导致重新启动。有关详细信息,请参阅节元素继承的常规属性中的 configSource。

没有编辑文件权限的人尝试更改配置文件不会导致应用程序域重新启动。

完整的 MSDN 页面。http://msdn.microsoft.com/en-us/library/ackhksh7.aspx

正如这里所说,有一种解决方法。通过使用configSource来引用外部配置文件,您可以毫无问题地更改这些文件。

我希望这有帮助。

  • 虽然我理解解释,但我的问题是:为什么这种行为仅在从 VS2012 切换到 VS2013 后才开始?我能够在使用 VS2012 时编辑 web.config,而无需重新启动调试会话。 (2认同)