Сборка .NET в GAC + Config - PullRequest
       15

Сборка .NET в GAC + Config

0 голосов
/ 25 марта 2010

У меня есть сборка .NET 3.5, DAL, которая подключается к базе данных через Linq2SQL. Я развернул эту сборку в GAC, так как она может использоваться несколькими бизнес-уровнями.

Вопрос в том, что в среде разработчика у меня есть строка подключения, отличная от той, что в рабочей среде. Перед развертыванием сборки на prod GAC мне нужно перекомпилировать ее с соответствующей строкой подключения.

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

Ответы [ 5 ]

2 голосов
/ 25 марта 2010

Неважно, развертываете ли вы сборку в GAC или в папке bin на веб-сайте, конфигурация приложения, использующего сборку, переопределяет соединение в классах LinqToSQL.

Вы должны передать эту строку подключения из конфига при создании контекста данных

0 голосов
/ 25 марта 2010

Рассмотрите возможность обновления файла MACHINE.CONFIG для добавления строки подключения или другого раздела конфигурации. Это унаследует все приложения .NET.

0 голосов
/ 25 марта 2010

Вы должны хранить строки подключения в файле web / app.config и ссылаться на этот параметр конфигурации в вашей сборке.

Строки подключения не должны быть жестко запрограммированы, и в файлах config для этой цели существует раздел connectionStrings.

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

0 голосов
/ 25 марта 2010

IMO, я думаю, что было бы ошибкой вставлять специфическое для среды значение, например строку подключения, в сборку GAC (или любую сборку в этом отношении). Вместо этого компонент в GAC должен разрешать передачу ему строки подключения.

0 голосов
/ 25 марта 2010

Есть ли в DAL строка подключения, жестко запрограммированная где-нибудь? Если это так, это не лучший вариант для настраиваемого развертывания. Если у вас есть доступ к коду DAL, выполните его рефакторинг, чтобы он принимал строку подключения в качестве параметра при построении любого из его дочерних классов. Затем любое приложение-потребитель может использовать раздел connectionStrings своего файла конфигурации для хранения строки подключения. Таким образом, вы можете изменить строку подключения в любое время.

...