Обычно в приложении .NET вы храните строки подключения к базе данных в app.config.Обработка строк подключения app.config при запуске нескольких экземпляров приложения
Для одного .exe существует один файл .exe.config. И мы используем Entity Framework, которая по умолчанию использует параметр .config, который соответствует имени DbContext. Что все работает нормально, если вы следуете общей схеме, когда один экземпляр приложения разговаривает с одной базой данных.
Но наша проблема требует наличия нескольких экземпляров нашего приложения, каждый из которых имеет свое собственное соединение с базой данных.
Возможные решения:
- Создание нескольких копий EXE-файл, каждый со своей собственной копией .config, и поставить другую строку соединения в каждом. Преимущество? Изменений нет. Недостаток? Поддержание всех разных копий, обеспечение их обновления и т. Д.
- Сохраните одну копию .exe с одной копией .config и поместите несколько строк подключения в .config. Затем передайте аргумент командной строки программе, которая выбирает, какую строку подключения использовать. Преимущество? Только один .exe для управления. Недостаток? Изменение кодировки, вероятность того, что кто-то испортит аргументы командной строки.
- Некоторые другие блестящие идеи, что кто-то здесь, на Stack Overflow, будет указывать на меня.
Любые идеи?
Я уверен, что люди раньше занимались этой проблемой. Существует ли общий способ решения проблемы?
Как часто будет они будут повторно запущены? Если не часто, то определенно лучший вариант. Кроме того, сколько усилий будет иметь изменение кодировки? – nicV
Это фоновые службы, работающие в командном окне или в виде служб Windows, которые выбирает клиент. В любом случае, они должны работать круглосуточно. –
В таком случае они не будут перезапущены, что часто, вариант 2 лучше. Добавьте некоторую проверку того, что введенная опция работает и пусть это будет! В конечном итоге изменение кода будет стоить единственной конфигурации для управления! – nicV