Использование специфичной для сайта ConnectionString с DLL - PullRequest
2 голосов
/ 02 марта 2009

Настройка:

У меня есть 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?

1 Ответ

3 голосов
/ 02 марта 2009

Вам нужно искать раздел из общих параметров конфигурации 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();
...