2011-07-13 127 views
3

我創建了一個HTTPModule,它應該記錄請求和響應。
告知http模塊如何工作的參數位於web.config中。
但是,爲了讓http模塊使用最新的參數值工作,每個請求都從app.config中讀取參數。檢測web.config已更改

有沒有一種方法可以檢測web.config中的更改,以便我可以重新加載http模塊參數,而不是在每次有響應時讀取它們?

回答

7

你根本不需要那樣做。您只能加載這些屬性一次並將它們存儲在某處。每次web.config改變整個ASP.NET應用程序時,http模塊將不得不重新初始化。

+1

是的,我也認爲它沒有做您每次請求參數值時的web.config文件的解析,但它使用的緩存值(所以基本上,沒有性能損失從ConfigurationManager中讀出對緩存價值你自己) – veljkoz

+0

這根本不是真的。改變web.config的方式有很多,不會終止你的應用程序。我現在正在排除其中一種情況。 –

+0

@SonicSoul:我會很樂意閱讀你的情況。 –

2

@Ladislav & @velijoz是正確的。 web.config只讀一次,並將值存儲在內存中,直到應用程序重新啓動,因爲web.config已被更改。

除非你直接打開並閱讀文件。這將是一件壞事。

如果設置定期更改,可以將它們放在另一個文件中,讀取值並將它們存儲在緩存中,並對文件進行緩存依賴。這樣,您可以更改設置,而無需每次重新啓動應用程序。當您更改設置文件時,緩存依賴性會使緩存無效,您的代碼可能會再次讀取文件。

西蒙