Różnice w zachowaniu między System.Web.Configuration.WebConfigurationManager a System.Configuration.ConfigurationManager

Miałem pewne problemy na serwerze testowym z witryną ASP.NET. Poszukałem go, a katalog domowy domyślnej witryny wskazał niewłaściwe miejsce. Kiedy próbowałem:

ConfigurationManager.ConnectionStrings["connectionString"]; 

zwrócił wartość null, ale

using System.Web.Configuration;

/* ... */

var rootWebConfig =
    WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

rootWebConfig.ConnectionStrings.ConnectionStrings["connectionString"].ConnectionString;` 

zwrócił prawidłowy ciąg połączenia.

Jakie są różnice między tymi dwoma podejściami?

EDIT: Naprawdę pytam, dlaczegoConfigurationManager Podejście nie powiedzie się, gdy katalog domowy jest niepoprawnie ustawiony, ale w przeciwnym razie się powiedzie, iWebConfigurationManager udaje się niezależnie od tego, czy katalog domowy jest poprawnie ustawiony? Czy są jakieś inne różnice, takie jak założenia dotyczące kontroli dostępu?

questionAnswers(2)

yourAnswerToTheQuestion