2009-06-04 89 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的更改不會執行任何操作。

相關問題