默认情况下,IIS托管的WCF服务无法使用使用用户范围设置的库。它接受的唯一范围是应用程序范围。
当你尝试不这样做时会引发异常:
[System.Configuration.ConfigurationErrorsException] {“当前配置系统不支持用户范围的设置。”}
如何规避这个?
答案 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配置的三部分系列文章。
强烈推荐,写得很好,非常有帮助!
马克