У меня были некоторые проблемы на тестовом сервере с веб-сайтом ASP.NET. Я ушел, и у меня был дом каталог веб-сайта по умолчанию указал на неправильное место. Когда я попытался:
ConfigurationManager.ConnectionStrings["connectionString"];
он возвращает null, но
using System.Web.Configuration;
/* ... */
var rootWebConfig =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
rootWebConfig.ConnectionStrings.ConnectionStrings["connectionString"].ConnectionString;`
вернула правильную строку подключения.
В чем все различия между двумя подходами?
EDIT: что я действительно спрашиваю, почему подход ConfigurationManager
выходит из строя, когда домашний каталог установлен неправильно, но в противном случае он преуспевает, а WebConfigurationManager
выполняется независимо от того, правильно ли установлен домашний каталог? Существуют ли какие-либо другие отличия, например, допущения о контроле доступа?