Как перенаправить все запросы IIS в мое приложение MVC? - PullRequest
1 голос
/ 11 ноября 2011

Я создаю приложение MVC 3, которое управляет бизнесом для компаний-клиентов. При развертывании входящие запросы должны заметно указывать название компании-клиента; Таким образом, http://hosteddomain.com/Excelsior/Home/Dashboard/3 должен получить домашнюю страницу для пользователя из клиента Excelsior.

Вопрос 1 : На сервере разработки это работает нормально (localhost:28497/ClientCompany/...), потому что мой RouteConstraint ищет название компании. Тем не менее, когда я развертываю это, как сказать IIS отправлять все запросы моему приложению? Сейчас IIS будет искать приложение с именем «ClientCompany».

Вопрос 2 : Есть ли лучший способ сделать это? Например, используя URL-адреса вида ClientCompany.hosteddomain.com/SomeAppName/[pages...]. Если да, как я могу сказать IIS переназначить запросы к моему приложению И как я могу получить название компании-клиента из приложения MVC?

Мета-вопрос 1 : Может быть, лучший вопрос 1: как сделать мое приложение веб-сайтом по умолчанию для IIS?

Спасибо за понимание Eric

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

На вопрос №2 вы можете получить доступ к необработанному URL-адресу из HttpContext.Current.Request. Оттуда вы можете найти все, что захотите.

Я бы настроил заголовки хостов в IIS для одного приложения, затем проанализировал URL и сделал оттуда все, что вам нужно.

EDIT

Единственное доменное имя, которое необходимо зарегистрировать, - это TLD (домен верхнего уровня), поэтому

subdomain.tld.com - это просто поддомен, для которого необходимо создать DNS-запись, а затем настроить заголовки узлов IIS.

Посмотрите на это: http://technet.microsoft.com/en-us/library/cc753195(WS.10).aspx

Обратите внимание, что заголовки хоста не работают, если вы используете SSL, если я правильно помню.

1 голос
/ 11 ноября 2011

Вам необходимо Зарегистрировать маршруты в вашем global.asax.Вы просто определяете шаблон, который хотите принять, и назначаете контроллер и параметры действия.

...