【问题标题】:WCF and System.Configuration namespaceWCF 和 System.Configuration 命名空间
【发布时间】:2008-10-24 23:46:45
【问题描述】:
当引用的 .NET Framework 2.0 程序集尝试在 IIS 托管的 WCF 服务中执行以下代码行时,我收到错误消息:
错误信息:
不指定时必须指定exePath
在独立的 exe 中运行。
源代码:
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
有没有人遇到过这个问题,他们知道如何解决吗?
编辑: 我的问题是,从向后兼容 .NET 2.0 程序集的 WCF 服务打开配置文件(app.config 和 web.config)的最佳方法是什么?
【问题讨论】:
标签:
.net
wcf
system.configuration
【解决方案1】:
引用的 .NET 2.0 程序集是我为我们的企业库开发的用于处理常见任务的类库的一部分。它旨在用于 ASP.NET 和 WinForm 应用程序。
这里是我用来确定要打开哪种类型的配置文件的源代码:
//Open app.config or web.config file
if (HttpContext.Current != null)
this.m_ConfigFile = WebConfigurationManager.OpenWebConfiguration("~");
else
this.m_ConfigFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
【解决方案2】:
我能够通过从我以前的答案中删除现有代码并将其替换为以下 ConfigurationManager 实现来解决配置问题:
string MySetting = ConfigurationManager.AppSettings.Get("MyAppSetting");
如果适用于 ASP.NET 应用程序、WinForms 应用程序和 WCF 服务。 3 年前,我刚刚过度设计了我的类库的初始实现....
【解决方案3】:
这取决于您要完成的工作。在 ASP.NET 上,您通常不会将 ConfigurationManager 用于此类事情,而是使用 WebConfigurationManager。也就是说,没有完全等价的,因为实际上,OpenExeConfiguration 允许的用户/漫游/等内容在 Web 应用程序上没有意义。
你需要它做什么?