Конфигурация приложения IIS7 - PullRequest
1 голос
/ 21 декабря 2010

У меня есть специальное приложение ASP.NET, которое я использую для нескольких клиентов, которые я размещаю. Каждый клиент имеет отдельный домен, и приложение, как правило, является дочерним приложением в корневом домене (http://domain.com/customapp). Файлы приложений одинаковы (aspx, ascx, таблицы стилей, изображения и т. Д.). Единственное, что отличается от Интернета. Конфигурационный файл для каждого клиента. Поскольку разработка приложения продолжает развиваться, мне приходится обновлять приложение для каждого каталога, и это, очевидно, становится утомительным. Я пытаюсь найти способ поддерживать приложение в актуальном состоянии. Сначала я размещение приложения в одном физическом пути и создание нескольких приложений, указывающих на этот путь (проблема с этим методом заключается в том, что у меня не может быть разных файлов web.config). Мне интересно, какое решение используют другие в этом сценарии ... .

Ответы [ 2 ]

1 голос
/ 21 декабря 2010

Можете ли вы просто переместить содержимое web.config в базу данных и загрузить его условно в зависимости от домена, на который ссылались?

    Select Case Request.Url.Host.ToLowerInvariant()
        Case "xyz.com", "www.xyz.com"
            'Load XYZ stuff'
        Case "abc.com", "www.abc.com"
            'Load ABC stuff'
        Case Else
            'Throw an error probably'
    End Select

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

1 голос
/ 21 декабря 2010

Если вы хотите полностью обработать это в Visual Studio, VS2010 предлагает преобразования web.config , которые могут решить вашу проблему.

В двух словах, создайте конфигурацию сборки (в VS выберите Build | Configuration Manager ...) для каждого сайта. Добавьте преобразование web.config для каждого клиента, в котором указаны только различия, необходимые для каждого приложения.

Я использую это для разграничения конфигураций разработки, промежуточного размещения и выпуска - каждое преобразование корректирует строку подключения, настройки приложения и т. Д. - и оно работает достаточно хорошо как в Visual Studio, так и при развертывании через MSBuild.

Также обратите внимание, что настройки web.config наследуются приложениями IIS. Итак, если у вас есть корневой сайт

/root

и клиентские приложения

/root/client1
/root/client2
...

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

...