omo substituir o OpenExeConfiguration em um contexto da Web (asp.net mvc
OK, então temos algo que atualmente está usando o OpenExeConfiguration para ler um arquivo de configuração; no entanto, isso não funciona quando executado no contexto da Web.
Tentei várias maneiras diferentes de abrir o web.config programaticamente, mas não consigo ler o arquivo web.config correto. Caso seja importante, atualmente estou depurando no 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 o arquivo de configuração errado (a configuração da máquina ou o VS /IDE/Web.config) ou reclama do erro:
{System.Configuration.ConfigurationErrorsException: ocorreu um erro ao carregar um arquivo de configuração: Falha ao mapear o caminho '/'. ---> System.InvalidOperationException: falha ao mapear o caminho '/'
Edit - OK, então uma combinação de
config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
AND executando o Visual Studio 2008 Como o administrador trabalhou. Espero não ter problemas de segurança / permissão quando implantamos em nossos ambientes de servidor / cliente da Web!