我正在尝试在运行应用程序后对web.config进行更改。它给出了以下错误。
保存文件'web.config'需要您停止调试会话 你想现在停止调试吗?
我正在使用Visual Studio 2012。
我认为它必须在visual studio中使用Enable Edit and Continue
功能。仍然无效。
答案 0 :(得分:9)
我只想在janv8000关于编辑和继续的评论中添加一些内容,因为我刚遇到同样的问题并设法对其进行排序。
为了给出一些背景知识,我在VS 2012中创建了一个现有的Web应用程序。当我在VS 2013中调试这个项目时,我可以愉快地编辑web.config文件而无需重新启动调试器。然后我在VS 2013中创建了一个新的Web应用程序,发现当我尝试编辑web.config文件时,我在原始问题中收到了错误消息。
解决方法是禁用单个项目的编辑并继续 。我强调这一点的原因是因为在Tools-> Options-> Debugger for Edit and Continue中有一个全局调试器设置。这不是导致此问题的选项。
要解决它:
答案 1 :(得分:1)
首先让我指出一个快速的事实。这里有两种不同类型的项目。
WebSite
创建的New WebSite
。WebApplication
并选择New Project
ASP.Net Web Forms Appplication
醇>
现在说明这一点的原因很简单。
第一个选项允许您更改web.config而不执行应用程序重置(仅在调试时)。这是因为WebSite
项目文件是在请求pages \ files时编译的。因此,每次请求页面时都会编译代码。这也是为什么你可以在调试时更改代码文件而没有任何问题。
第二种类型是已编译的应用程序。因此,所有代码都在运行时之前编译。在这种情况下,AppPool(IIS,IISExpress)会监视对此文件的更改。如果此文件发生更改,应用程序必须重新启动才能使更改生效。现在没有办法阻止这种行为作为核心AppPool
的一部分。
以下摘自MSDN:
配置更改导致重新启动应用程序域
间接导致Web.config文件中配置设置的更改 要重新启动的应用程序域。此行为是通过设计发生的。您 可以选择使用configSource属性来引用外部 进行更改时不会导致重新启动的配置文件。 有关更多信息,请参阅常规属性继承中的configSource 按部分元素。
尝试更改配置文件 没有编辑文件权限的人不会导致 重新启动应用程序域。
完整的MSDN页面。 http://msdn.microsoft.com/en-us/library/ackhksh7.aspx
正如它在这里陈述的那样,有一种方法。通过使用configSource
引用外部配置文件,您可以毫无问题地进行更改。
我希望这会有所帮助。
答案 2 :(得分:0)
实际上我在使用Visual Studio 2013的Web应用程序上遇到了同样的问题。在此之前我使用的是VS2010并且没有问题,如你所说。
我找到的解决方案是不使用IIS Express(:(我无法想象使用IIS Express)
1-只需右键单击您的项目,然后选择属性。
2-在“Web”选项卡上,选择页面“服务器”部分下的“本地IIS”。
3-单击“创建虚拟目录”按钮。
Viola,现在你已经使用端口80在iis上部署了它。(因此,当你运行inetmgr(IIS管理器)时,它将位于“默认网站”部分下,当然如果你没有在端口上运行任何其他站点80)
如果您需要自定义端口(即1234):
只需使用端口1234在IIS管理器上创建新站点,然后在VS2013的项目属性中编辑您的URL:“http://localhost:1234/Your.Project.Name
”
如果有人展示如何使用IIS Express编辑和继续web.config,也将不胜感激。
答案 3 :(得分:0)