how - leer connectionstring app.config c#
exePath debe especificarse cuando no se ejecuta dentro de un exe independiente (3)
Debe utilizar un administrador de configuración diferente en un contexto web. El siguiente bloque de código muestra un ejemplo de cómo lidiar con esto:
System.Configuration.Configuration configuration = null;
if (System.Web.HttpContext.Current != null)
{
configuration =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
}
else
{
configuration =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
}
Cuando estoy usando una aplicación web, la línea de código a continuación
Configuration objConfig =
ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None);
en la biblioteca de clases están dando este error:
"exePath debe especificarse cuando no se ejecuta dentro de un exe independiente".
Anteriormente, se estaba utilizando una aplicación de consola y el código podía acceder a app.config
. Intenté usar System.Web.Configuration
en la biblioteca de clases pero el dll no estaba presente en la pestaña .Net para "Agregar referencia".
Amablemente ayuda :)
Intenté usar la respuesta de @shane pero terminé con la misma excepción usando Hangfire. Este código funcionó para mí, sin embargo:
System.Configuration.Configuration configFile = null;
if (System.Web.HttpContext.Current != null)
{
configFile =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
}
else
{
System.Configuration.ExeConfigurationFileMap map = new ExeConfigurationFileMap { ExeConfigFilename = $"{System.AppDomain.CurrentDomain.BaseDirectory}Web.Config" };
configFile = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
}
Tenga en cuenta que la edición de Web.config hará que el grupo de aplicaciones se reinicie .
No estoy seguro de lo que estás haciendo; pero a primera vista, parece que estás intentando usar el código escrito para una aplicación WinForms en un entorno web. Esto seguramente no funcionará, ya que su aplicación web no tendrá los permisos que necesita.
Intente buscar cómo hacerlo en un entorno web (ya que parece que está tratando con archivos de configuración, intente buscar en WEB.CONFIG para comenzar)