6

当引用的 .NET Framework 2.0 程序集尝试在 IIS 托管的 WCF 服务中执行以下代码行时,我收到一个错误:

错误信息:

当不在独立 exe 中运行时,必须指定 exePath。

源代码:

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

有没有人遇到过这个问题,他们知道如何解决吗?

编辑:我的问题是,从向后兼容 .NET 2.0 程序集的 WCF 服务打开配置文件(app.config 和 web.config)的最佳方法是什么?

4

3 回答 3

4

引用的 .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);
于 2008-10-31T01:26:29.400 回答
3

我能够通过从我以前的答案中删除现有代码并将其替换为以下 ConfigurationManager 实现来解决配置问题:

string MySetting = ConfigurationManager.AppSettings.Get("MyAppSetting");

如果适用于 ASP.NET 应用程序、WinForms 应用程序和 WCF 服务。3 年前,我刚刚过度设计了我的类库的初始实现......

于 2008-11-07T23:00:24.493 回答
1

这取决于您要完成的工作。在 ASP.NET 上,您通常不会将 ConfigurationManager 用于此类事情,而是使用 WebConfigurationManager。也就是说,没有确切的等价物,因为实际上,OpenExeConfiguration 允许的用户/漫游/等内容在 Web 应用程序上没有意义。

你需要它做什么?

于 2008-10-25T02:28:31.440 回答