Использование специфичной для веб-сайта ConnectionString с DLL

Настройка:

У меня есть DLL, которая использует ConnectionString для подключения к базе данных SQL. Когда я добавляю DLL на свой веб-сайт, я должен добавить строку подключения в свой web.config, чтобы моя DLL работала правильно (это сделано по дизайну). Как только я добавлю его в web.config, все будет работать нормально (как и ожидалось).

Проблема:

Проблема начинается, когда я хочу переместить строку подключения в настройки приложения ASP.NET моего веб-сайта, найденные в IIS> Веб-сайт по умолчанию> Свойства> вкладка ASP.NET> Изменить глобальную конфигурацию...> Диспетчер строк подключения

Если я удалю его из моего web.config и положу туда, моя DLL не будет работать. Если я использую строку подключения где-либо еще на своем веб-сайте (а не из DLL), я могу получить доступ к базе данных с помощью этого метода, но по какой-то причине моя DLL может получить к ней доступ только в том случае, если она находится в файле web.config.

Вопрос:

Как я могу заставить свою DLL использовать строку подключения, указанную в диспетчере строк подключения параметров конфигурации ASP.NET, вместо web.config?


person RichC    schedule 02.03.2009    source источник


Ответы (1)


Вы должны искать раздел в общих настройках конфигурации ASP.Net, которые можно получить через класс WebConfigurationManager, а не искать строку подключения через ConfigurationManager.ConnectionStrings.

    // Get the connectionStrings section.
ConnectionStringsSection connectionStringsSection =
    WebConfigurationManager.GetSection("connectionStrings")
    as ConnectionStringsSection;

// Get the connectionStrings key,value pairs collection.
ConnectionStringSettingsCollection connectionStrings =
    connectionStringsSection.ConnectionStrings;

// Get the collection enumerator.
IEnumerator connectionStringsEnum =
    connectionStrings.GetEnumerator();
person jro    schedule 02.03.2009
comment
Кроме того, Linq to SQL перезаписывает строки подключения к базе данных каждый раз, когда вы сохраняете DBML, поэтому мне всегда приходится открывать блокнот, чтобы переопределить его, а затем сразу же создавать его. - person RichC; 03.03.2009
comment
Перезаписывает строки подключения к БД? Имеется в виду ваш локальный файл конфигурации? - person jro; 03.03.2009
comment
Нет, я имею в виду, что если в код Designer.vb для DBML будут внесены изменения, Visual Studio перезапишет все внесенные вручную изменения при сохранении. - person RichC; 04.03.2009
comment
Да, это правда. Это другая проблема. - person jro; 04.03.2009