【问题标题】:Reading from configuration file within WCF web service从 WCF Web 服务中的配置文件读取
【发布时间】:2011-08-14 13:46:47
【问题描述】:

我正在尝试在未启用 ASP.NET 的 WCF Web 服务中读取 Constants.config 文件。

Configuration rootWebConfig1 = Configuration.WebConfigurationManager.OpenWebConfiguration("Constants.config");

此调用引发了异常,似乎OpenWebConfiguration 尝试在其他位置打开配置文件。我如何知道它在哪里寻找以及如何指定目标文件夹?

非常感谢。 宜兰。

【问题讨论】:

  • WHAT 抛出了什么异常?请提供所有相关的详细信息
  • 因为我是在静态构造函数中做的,所以异常的消息是类型有问题。没什么用处。

标签: .net wcf web-services web-config


【解决方案1】:

OpenWebConfiguration 旨在打开一个网络配置文件 - 例如仅限web.config...

据我所知,你不能用它来打开你自己的配置文件。

但是,您可以使用 .NET System.Configuration 命名空间中的常规 Configuration 类。查看 Jon Rista 在 CodeProject 上关于 .NET 2.0 配置的三部分系列:

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

在第 3 部分中,Jon 展示了如何使用自己的自定义配置文件并在 ExeConfigurationFileMap 类的帮助下打开它们:

ExeConfigurationFileMap exeMap = new ExeConfigurationFileMap();
exeMap.ExeConfigFilename = "C:\Application\Constants.config";

Configuration exeConfig = 
  ConfigurationManager.OpenMappedExeConfiguration(exeMap, ConfigurationUserLevel.None);

【讨论】:

【解决方案2】:

您可以按照marc_s 所说的操作并使用Configuration (depreciated)ConfigurationManager,或者如果您希望WCF 服务支持ASP.NET 功能,您可以打开ASP.NET Compatability,方法是用一个装饰您的服务实现AspNetCompatibilityRequirementsAttribute.

如果服务将绑定到一个始终托管在 IIS 中的 ASP.NET 站点,并且将使用 ASP.NET 会话,那么这可能是可行的方法。如果不使用 ConfigurationManager 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2015-04-09
    • 1970-01-01
    • 2019-08-17
    • 2015-11-18
    相关资源
    最近更新 更多