Несколько доменов, одно веб-приложение на IIS 6 - PullRequest
5 голосов
/ 07 ноября 2008

В IIS 6 возможно ли иметь несколько доменных имен, указывающих на одно и то же веб-приложение, и условно обслуживать CSS из веб-приложения на основе имени домена?

Мне нужно разместить сотни разных «оболочек» в одном и том же веб-приложении, причем обложка зависит от имени домена, и я действительно не хочу запускать тонны веб-приложений.

Ответы [ 5 ]

7 голосов
/ 07 ноября 2008

+ 1 к rhinof для добавления нескольких идентификаторов, но создание HttpModule немного убивает. Вы можете просто переключить URL тега на главной странице, изучив содержимое Request.Headers ["HOST"]

2 голосов
/ 07 ноября 2008

1) добавьте нужные доменные имена в качестве идентификаторов веб-сайтов на странице дополнительных свойств вкладки веб-сайта.

2) сопоставить расширение .css с aspnet_isapi.dll

3) напишите модуль http, который будет переписывать URL для запросов .css на основе доменного имени

4) включить ваш модуль через web.config

1 голос
/ 07 ноября 2008

Да, это должно быть просто сделать. Я бы пошел с подходом сопоставления доменных имен для вашего приложения с использованием заголовков узлов в IIS. Затем, как сказал Мартин, запросите Request.Headers ["HOST"] в вашем приложении, чтобы переключить таблицу стилей.

1 голос
/ 07 ноября 2008

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

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

Вам также необходимо добавить этот параметр при любых общих вызовах БД, чтобы получать результаты только для домена, который размещается. У меня есть небольшой опыт в этом, поэтому просто оставьте несколько комментариев, если вы хотите увидеть некоторые конкретные примеры кодирования.

Вы можете применить эту технику к любому файлу, таблице стилей CSS или объекту для ссылок.

1 голос
/ 07 ноября 2008

Если вы используете темы, вы можете изменить тему, тем самым изменив CSS и т. Д. В Page.PreInit в зависимости от значения домена в Request.ServerVariables ["Url"] (обратите внимание, что может быть Переменная сервера, чтобы получить имя домена, посмотрите его).

Если вы не используете темы, вы можете программно поменять файл css, проверив ту же переменную сервера.

MasterPages станет вашим другом здесь.

Надеюсь, что толкает вас в правильном направлении. Это возможно и распространено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...