2009-07-17 4 views
0

У меня есть веб-приложение, которое я хочу использовать для нескольких бизнес-областей. Я не хочу иметь несколько экземпляров кода веб-приложения на веб-сервере.Загрузка другого файла web.config во время выполнения для ASP.NET

Так как пример: у меня есть // MyWebSite/Virtual_Directory_1 относится к C: \ Inetpub \ Wwwroot \ MyWebApp указывая на Database_A То, что я хочу, чтобы настроить другой виртуальный каталог следующим образом: // MyWebSite/Virtual_Directory_2 относится к c: \ Inetpub \ wwwroot \ MyWebApp, указывающий на Database_B.

Я думал об этом, имея отдельные файлы web.config, но я не уверен, как это сделать на самом деле.

Любая помощь будет оценена по достоинству.

Благодаря Параг

ответ

0

Вы можете разделить конфигурацию на несколько файлов, и вы также можете создать 1 или несколько виртуальных каталогов в IIS для одного физического каталога. Однако это означает, что у вас есть 2 экземпляра вашего веб-приложения, доступных в вашем веб-контейнере, но оба они используют одни и те же файлы конфигурации, независимо от того, разделены ли они на несколько файлов.

У вас также может быть файл web.config для каждого подкаталога в вашем веб-приложении, и каждый файл может переопределять его родительские настройки web.config (не все переопределяемые).

Чтобы создать виртуальный каталог в диалоговом окне запуска введите inetmgr ... Диспетчер IIS откроется. Щелкните правой кнопкой мыши по веб-сайту по умолчанию, если на клиентской ОС и выберите «Создать», затем «Виртуальный каталог». Появится мастер настройки виртуального каталога. Следуйте простым шагам, которые он может предложить, и вы создадите 2 виртуальных каталога для одного исходного каталога.

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

Посмотрите статью на this location:

0

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

<connectionStrings> 
    <add name="VirtualDir1" connectionString="data source=BLAHBLAH" /> 
    <add name="VirtualDir2" connectionString="data source=BLAHBLAH" /> 
</connectionStrings> 

При получении строки соединения просто ссылаться как:

ConfigurationManager.ConnectionStrings(Request.ApplicationPath).ConnectionString 

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

Смежные вопросы