Общая строка соединения между несколькими проектами - PullRequest
0 голосов
/ 04 мая 2018

У меня есть несколько проектов, размещенных в IIS. Все они совместно используют базу данных, которая называется с использованием EF6. Я хочу иметь возможность использовать файл конфигурации общей строки подключения, на который я могу ссылаться из каждого из других проектов web.config. Таким образом, я могу управлять любыми шансами на строку подключения из одного места. Из того, что я нашел в Интернете, я пытаюсь сделать это через виртуальный каталог и атрибут configSource для connectionString.

Структура IIS

-VirtualDirectory (сопоставленный с / DbConfigFile)
-WebApp 1
-WebApp 2
-WebApp 3

Соединение WebApps Web.configString разделы
<connectionStrings configSource="/DbConfigFile/testDB.config"></connectionStrings>

Внешний файл конфигурации (testDB.config), содержащий строку подключения, необходимую всем приложениям. <connectionStrings> <add name="TestDBEntities" connectionString="metadata=res://*/TestDB.csdl|res://*/TestDB.ssdl|res://*/TestDB.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=TestDB;initial catalog=VBODashboard;persist security info=True;user id=Test;password=Test;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> </connectionStrings>

Я безуспешно пробовал различные пути в атрибуте configSource (~ / DbConfigFile / testDB.config, testDB.config). Как бы я получить доступ к этому файлу? Или есть лучший способ сделать это?

1 Ответ

0 голосов
/ 09 мая 2018

Я закончил тем, что пошел с одним из предложений масона и создал собственный файл конфигурации. Это позволило мне исследовать, обнаружив, что строка соединения может быть указана через код при инициализации контекста. Затем я прошел по XML-файлу через код и извлек значение строки подключения. :

public partial class TestDBEntities : DbContext
{
 public TestDBEntities()
  : base(<calling code to get connection string> , true)
    {
    }
     ...
}
...