2010-10-18 45 views
0

configuration.Save(ConfigurationSaveMode.Modified, true)configuration.Save()有什麼區別?System.Configuration:關於Configuration.Save方法的提問

背景:我有一個程序,我在那裏操縱web.config,我使用配置WCF服務。我將它加載到一個Configuration對象中,更改一些屬性並將其保存。當我使用configuration.Save(ConfigurationSaveMode.Modified, true)我得到一個Exception這樣的:

「這是使用註冊爲allowDefinition =應用程序級別之外‘MachineToApplication’的節是錯誤的......」

當我使用configuration.Save(),然後有用!究其原因,例外可能是部分<serviceActivations>在我的web.config(異常點,本節)

回答

0

ConfigurationSaveMode.Modified僅保存配置的對於所述應用/系統配置的不同給用戶的部分本地或漫遊配置(使用ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel)ConfigurationUserLevel.PerUserRoaming帶或ConfigurationUserLevel.PerUserRoamingAndLocal即)。

由於ASP.NET沒有用戶級別(和用戶隔離存儲),所以這沒有意義。

從文檔不清楚,如果任何的Configuration.Save重載將真正的工作在ASP.NET的情況下使用完全不同的配置設置繼承模型非ASAP.NET.NET應用程序。實際上,使用WebConfigurationManager之一加載配置管理器可能是保存文件的必要前提條件。

另一種方法可能是明確加載明確指定的文件與ConfigurationManager.OpenMappedExeConfiguration