Diferenças de comportamento entre System.Web.Configuration.WebConfigurationManager e System.Configuration.ConfigurationManager
Eu tive alguns problemas em um servidor de teste com um site ASP.NET. Eu goofed, e tinha o diretório home do site padrão apontou para o lugar errado. Quando eu tentei:
ConfigurationManager.ConnectionStrings["connectionString"];
ele retornou nulo, mas
using System.Web.Configuration;
/* ... */
var rootWebConfig =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
rootWebConfig.ConnectionStrings.ConnectionStrings["connectionString"].ConnectionString;`
retornou a string de conexão correta.
Quais são as diferenças entre as duas abordagens?
EDIT: O que eu estou realmente perguntando é, por que oConfigurationManager
a abordagem falha quando o diretório inicial está definido incorretamente, mas é bem-sucedidoWebConfigurationManager
tem sucesso independentemente de o diretório base estar definido corretamente? Existem outras diferenças, como suposições sobre o controle de acesso?