2008-10-24 12 views
6

he recibido un error cuando una referencia ensamblado de .NET Framework 2.0 trató de ejecutar la siguiente línea de código en un IIS organizadas servicio WCF:WCF y espacio de nombres System.Configuration

mensaje de error:

ExePath debe especificarse cuando no ejecutándose dentro de un exe independiente.

Código Fuente:

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

Alguien ha experimentado este problema y no saben cómo resolverlo?

EDIT: Mi pregunta es, ¿cuál es la mejor manera de abrir un archivo de configuración (app.config y web.config) desde un servicio WCF que sea compatible con versiones anteriores de un ensamblado .NET 2.0?

Respuesta

3

yo era capaz de resolver el problema de configuración, eliminando el código existente de mi respuesta provious y su sustitución por el siguiendo la implementación de ConfigurationManager:

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

Si funciona para aplicaciones ASP.NET, aplicaciones WinForms y servicios WCF. Acabo de sobre-diseñar la implementación inicial de mi biblioteca de clase hace 3 años ...

1

Depende de lo que esté tratando de lograr. En ASP.NET, normalmente no usaría ConfigurationManager para cosas como esta, sino WebConfigurationManager. Dicho esto, no hay un equivalente exacto, ya que, en realidad, las cosas de usuario/roaming/etc que permite OpenExeConfiguration no tienen sentido en una aplicación web.

¿Para qué lo necesitas?

5

El ensamblado .NET 2.0 al que se hace referencia es parte de una biblioteca de clases que desarrollé para nuestra biblioteca empresarial para manejar tareas comunes. Estaba destinado a ser utilizado en aplicaciones ASP.NET y WinForm.

Aquí está el código fuente que utiliza para determinar qué tipo de archivo de configuración para abrir:

//Open app.config or web.config file 
if (HttpContext.Current != null) 
    this.m_ConfigFile = WebConfigurationManager.OpenWebConfiguration("~"); 
else 
    this.m_ConfigFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
Cuestiones relacionadas