Консольное приложение, вызывающее datalayer, генерирует исключение «Инициализатор типа для броска исключения». - PullRequest
1 голос
/ 17 августа 2010

У меня есть простое 3-уровневое веб-приложение, и я в основном работаю в CRUDE.Недавно мне потребовалось добавить новое консольное приложение в существующее решение, в котором я вызываю методы уровня данных для извлечения данных из БД, но я получаю исключение «Инициализатор типа для выбросил исключение».Когда я отладил, я обнаружил, что исключение выдается на уровне данных в первой строке класса, где я получаю строку подключения из web.config, код:
открытая статическая строка только для чтения CONNECT_STRING = ConfigurationManager.ConnectionStrings ["DbConnectString"]. ConnectionString;

Теперь, если я жестко закодирую значение строки подключения, например, общедоступную статическую строку только для чтения, CONNECT_STRING = "Источник данных = XYZ; uid = sa; пароль = XXX; исходный каталог = ABC;"

, это работает нормально.Я не понимаю, в чем здесь проблема, так как веб-приложение прекрасно работает с этим уровнем данных.Есть предложения?

Ответы [ 2 ]

2 голосов
/ 17 августа 2010

Консольные приложения не имеют web.config.Для этого нужен app.config.

0 голосов
/ 17 августа 2010

Консольное приложение может читать web.config

ConnectionStringSettingsCollection connections = ConfigurationManager.ConnectionStrings;
    foreach (ConnectionStringSettings connection in connections)
    {


    }
...