ASP.NET решение с проектом библиотеки классов - PullRequest
9 голосов
/ 12 января 2009

У меня есть решение в VS 2008, которое содержит два проекта библиотеки классов и веб-сайт ASP.NET. Сайт ASP.NET ссылается на библиотеки классов, а одна из библиотек содержит элемент LINQ To SQL.

Мой вопрос касается app.config в библиотеке классов, которая содержит строку подключения для базы данных. Когда я собираю проект, этот app.config не находится в каталоге сборки, и это означает, что я не могу динамически изменить строку подключения для развернутого проекта.

Что я здесь не так делаю, как я могу развернуть эти настройки, чтобы я мог внести изменения в строку подключения?

Заранее спасибо,

Martin.

Ответы [ 5 ]

18 голосов
/ 12 января 2009

Вначале это также вызвало у меня некоторое замешательство.

Вы можете подумать, что библиотека классов использует файл app.config, который содержится в ее собственном проекте, но это не так. Он использует файл конфигурации проекта, который ссылается на него.

Итак, вам нужно найти тег <appSettings/> внутри файла web.config вашего проекта ASP.Net и изменить его на <appSettings></appSettings> И добавить теги <add ... />, содержащиеся в приложении. Конфигурационный файл библиотечного проекта. Вам не нужно ничего менять в своем коде для класса ConfigurationManager, чтобы понять это. Он знает, где искать автоматически.

Надеюсь, что это имеет смысл.

1 голос
/ 03 июня 2010

Чтобы преодолеть проблему строки подключения, вот хитрость

  1. Внутри библиотеки классов ur объявляется модуль, имеющий два свойства, одно из которых является установщиком, а другой - получателем, и делает их общедоступными.
    1. Внутри проекта веб-сайта перейдите к глобальному файлу, и при запуске сеанса и при запуске приложения вызовите свойство setter, которое вы объявили ранее, и присвойте ему строку подключения, которая находится в ur web.config, теперь строку подключения будет доступен в общем объеме веб-сайта, и его значение будет существовать до тех пор, пока не истек срок действия учетных данных сеанса.
1 голос
/ 12 января 2009

Вы можете редактировать файл Web.config в конечном продукте. API конфигурации обычно получают данные конфигурации из первичного файла конфигурации приложения, который в случае приложений ASP.NET равен Web.config, а для клиентских приложений - Myfile.exe.config. Важно знать, что библиотеки классов в проекте обычно не имеют своего отдельного файла конфигурации, например MyClassLib.dll.config (если вы не обратитесь к конкретному файлу вручную).

0 голосов
/ 12 января 2009

Если вы хотите иметь разные настройки для разработки и производства, используйте Web Deployment Project. Скачать здесь . Из описания Microsoft:

Веб-развертывание Visual Studio 2008 Проекты предоставляют дополнительные функциональность для создания и развертывания веб сайты и веб-приложения в Visual Studio 2008. Эта надстройка обеспечивает комплексный интерфейс для управления сборкой конфигурации, слияние и использование задачи до и после сборки с MSBuild.

0 голосов
/ 12 января 2009

Скопируйте раздел connectionString из файла app.config вашей библиотеки в файл web.config. При необходимости измените фактическую строку подключения с вашей разработки на рабочий сервер. Класс ConfigurationManager, который LINQ2SQL использует для получения строки подключения, ищет в файле web.config строку подключения с соответствующим именем и использует ее, если она существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...