如何为Web项目托管的WCF服务使用的库启用用户设置?

时间:2009-12-17 18:37:59

标签: .net wcf iis settings

默认情况下,IIS托管的WCF服务无法使用使用用户范围设置的库。它接受的唯一范围是应用程序范围。

当你尝试不这样做时会引发异常:

  

[System.Configuration.ConfigurationErrorsException] {“当前配置系统不支持用户范围的设置。”}

如何规避这个?

1 个答案:

答案 0 :(得分:3)

您可以使用.NET 2.0配置系统加载/管理服务的用户范围配置文件,例如位于IsolatedStorage或其他东西。

拥有该文件后,您可以使用以下代码加载和访问其内容:

ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = "ConfigLibrary.config";  // set it to whatever 

Configuration libConfig = ConfigurationManager.
                  OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);

AppSettingsSection section = 
                   (libConfig.GetSection("appSettings") as AppSettingsSection);

string value = section.Settings["Test"].Value;
string item = section.Settings["Item"].Value;

等等。这使用标准的默认.NET 2.0配置,但它允许您拥有自己喜欢的自定义配置文件,位于您喜欢的任何位置,并且可以直接从您的类库中访问它们,无需将它们放入到web.config或主机应用程序的app.config。

有关.NET 2.0配置系统的更多信息,请查看Jon Rista关于CodeProject上.NET 2.0配置的三部分系列文章。

强烈推荐,写得很好,非常有帮助!

马克