当引用的.NET Framework 2.0程序集试图在IIS托管的WCF服务中执行以下代码行时,我收到错误:
错误讯息:
必须在不指定时指定exePath 在一个独立的exe里面跑。
源代码:
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
有没有人遇到过这个问题,他们知道如何解决这个问题吗?
编辑:我的问题是,从向后兼容.NET 2.0程序集的WCF服务打开配置文件(app.config和web.config)的最佳方法是什么?
答案 0 :(得分: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);
答案 1 :(得分:3)
我能够通过从我的问题中删除现有代码并将其替换为以下ConfigurationManager实现来解决配置问题:
string MySetting = ConfigurationManager.AppSettings.Get("MyAppSetting");
适用于ASP.NET应用程序,WinForms应用程序和WCF服务。我3年前刚刚过度设计了我的类库的初始实现....
答案 2 :(得分:1)
这取决于你想要完成的事情。在ASP.NET上,您通常不会将ConfigurationManager用于此类内容,而是使用WebConfigurationManager。也就是说,没有确切的等价物,因为实际上,OpenExeConfiguration允许的用户/漫游/等内容对Web应用程序没有意义。
你需要什么?