2009-06-04 49 views
2

我在我的机器上本地测试ASP.NET应用程序时想重写web.config文件中的一些设置。主要的部分是这样的:在Visual Studio 2008中 - 在web.config更改“需要”之前多久?

<appSettings file="WebAppSettings.config"> 
    <add key="DEBUG" value ="False"/> 
    <add key="PROD" value="TrueInMainConfigFile"/> 
    </appSettings> 

现在,在我的地方“WebAppSettings.config”我有:

<appSettings> 
    <remove key="DEBUG"/> 
    <remove key="PROD"/> 
    <add key="DEBUG" value ="True"/> 
    <add key="PROD" value="False"/> 
</appSettings> 

我刚刚从真正的改变“PROD”的值设置为False,并保存文件。然而,当我重建并运行站点时(同样,在本地机器上使用IIS,而不是Cassini),System.Configuration.ConfigurationManager.AppSettings(“PROD”)的值仍然返回“True”而不是“False”。

有时让它“坐很久”解决了这个问题。但是,大多数情况下,我必须关闭并重新打开VS2008才能获得“接受”的新价值。

这是怎么回事?

+0

这很奇怪。我一直发现web.config更改立即生效。我会好奇的看到答案。 – atfergs 2009-06-04 13:23:33

回答

4

如果更新web.config,则下一个会话将开始使用新值。如果你正在更新辅助文件,那可能是你没有看到它的原因。尝试更改web.config中的任何内容,例如添加空格以及保存文件。

+0

这是完全的原因。我改变了二级文件,新的值没有反映出来。当我更改实际的web.config文件时,它重新加载了所有内容,包括次要文件中的新值。 所以现在我有一个新的“疑难杂症”,以保持眼睛在Visual Studio - 编辑次级Web配置文件时,请务必将强制主web.config中的重载 - 任何会导致文件被保存 - 如你所说,增加一个空间就足够了。 – David 2009-06-04 13:57:51

1

如果我在IIS工作时重新加载站点,则会立即传播任何更改。不知道该告诉你什么。

2

在web.config中的更改会:

  • 在Visual Studio中,你下次运行时(F5)
  • 生产/可直接编辑 - 下一次调用appilcation

只要系统在\ bin文件夹或配置文件中检测到更改,就会进行动态构建。

0

保存Web.config文件将回收应用程序并加载新值。你确定你修改了正确的文件吗?评论“与IIS,而不是卡西尼)”可能意味着你有一个发布/独立版本的IIS?

希望这会有所帮助!

0

更改web.config回收AppDomain应用程序池,以便立即看到更改。

您是否正在对应用程序中的web.config进行更改?如果是这样,因为web.config文件缓存

这样的故事是不同的,你有几种选择

1)有此设置在不同的文件 2)使用ConfigurationManager.AppSettings [“MyAppSetting”]我记得一些ConfigurationManager中的版本被弃用,但有一个替代,哦对了,你必须刷新部分

希望它可以帮助

5

你有没有让你改变的web.config,或WebAppSettings.config?对web.config的更改会立即回收AppDomain,这会导致在请求后立即使用新值。对WebAppSettings.config的更改不会执行任何操作。