从 WCF Web 服务中的配置文件读取

发布于 2024-11-29 15:21:43 字数 328 浏览 0 评论 0原文

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

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

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

多谢。 宜兰.

I'm trying to read from Constants.config file within not ASP.NET enabled WCF web service.

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

This call threw an exception, and it's seems like that OpenWebConfiguration tries open the config file in some different location. How can I know where it looks for and how can I specify the target folder?

Thanks a lot.
Ilan.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖心男生 2024-12-06 15:21:43

OpenWebConfiguration 旨在打开Web 配置文件 - 例如仅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);

OpenWebConfiguration is intended to open a web configuration file - e.g. a web.config only...

You can't use it to open your own config files, as far a I know.

You can however use the regular Configuration class from the .NET System.Configuration namespace. Check out Jon Rista's three-part series on .NET 2.0 configuration up on CodeProject:

Highly recommended, well written and extremely helpful!

In part 3, Jon shows how you can use your own custom config files and open them with the help of the ExeConfigurationFileMap class:

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

Configuration exeConfig = 
  ConfigurationManager.OpenMappedExeConfiguration(exeMap, ConfigurationUserLevel.None);
不美如何 2024-12-06 15:21:43

您可以执行 marc_s 所说的操作并使用 配置(已弃用)ConfigurationManager,或者如果您希望 WCF 服务支持 ASP您可以打开的 .NET 功能 ASP.NET通过使用 装饰您的服务实现来实现兼容性 AspNetCompatibilityRequirementsAttribute。

如果该服务将绑定到始终托管在 IIS 中的 ASP.NET 站点,并且将使用 ASP.NET 会话,那么这可能是正确的选择。如果不使用 ConfigurationManager 类。

You can either do what marc_s said and use the Configuration (depreciated) or ConfigurationManager, or if you want you WCF service to support ASP.NET features you can turn on ASP.NET Compatability by decorating your service implementation with an AspNetCompatibilityRequirementsAttribute.

If the service will be tied to an ASP.NET site, always hosted in IIS, and would be making use of the ASP.NET session, this is probably the way to go. If not use the ConfigurationManager class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文