Cómo reemplazar OpenExeConfiguration en un contexto web (asp.net mvc 1)
OK, entonces tenemos algo que actualmente está usando OpenExeConfiguration para leer un archivo de configuración, sin embargo, esto no funciona cuando se ejecuta en el contexto web.
He intentado una variedad de formas diferentes de abrir web.config mediante programación, pero parece que no puedo leer el archivo web.config correcto. En caso de que sea importante, actualmente lo estoy depurando en VS 2008.
1. config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath);
2. config = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap { ExeConfigFilename = "web.config" }, ConfigurationUserLevel.None);
3. config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
4. config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null);
5. System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath);
Abre el archivo de configuración incorrecto (ya sea la configuración de la máquina o VS /IDE/Web.config) o se queja del error:
{System.Configuration.ConfigurationErrorsException: se produjo un error al cargar un archivo de configuración: no se pudo asignar la ruta '/'. ---> System.InvalidOperationException: no se pudo asignar la ruta '/'
Edit - OK, entonces una combinación de
config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
AND ejecutando Visual Studio 2008 Como administrador trabajó. ¡Espero que no nos encontremos con problemas de seguridad / permisos cuando implementemos en nuestro servidor web / entornos de cliente!