Проблемы с размещением нескольких приложений ASP.Net MVC3 на веб-сайте IIS7.5

Некоторые характеристики:

  • IIS 7.5
  • ASP.Net MVC3

У меня есть три приложения MVC3, которые я хотел бы разместить:

  1. Проект А
  2. Проект Б
  3. Проект C

Я хочу, чтобы URL-адреса были такими, соответственно:

  1. http://domain/
  2. http://domain/ProjectB
  3. http://domain/ProjectC

Итак, в IIS у меня есть веб-сайт по умолчанию, который указывает на папку для ProjectA. Затем я добавил к нему два приложения, одно из которых указывает на ProjectB, а другое - на ProjectC, а также их соответствующие папки на жестком диске. Я храню сайты в C: \ sites. У каждого проекта есть папка в C: \ sites, где находятся файлы приложения. Как видите, сайты на сервере вообще не вложены.

Когда я загружаю http://domain/ProjectB, он пытается загрузить значения конфигурации из ProjectA web.config. Очевидно, это не то, что я хочу, и я не так уж хорош в настройке сервера. Я заставил его работать, заключив большую часть ProjectA web.config в тег местоположения, например:

<location path="." inheritInChildApplications="false" >
    <!-- Lots of web.config stuff for ProjectA -->
</location>

Я не совсем фанат этого, это неправильно. Мне кажется, что вложенное приложение на моем сайте в IIS не должно даже знать о родительском сайте. Что я делаю неправильно? Я уверен, что это что-то действительно маленькое. Я бы сделал ProjectA приложением, но мне не нужен псевдоним, так как я хочу http://domain/ чтобы подтянуть его для пользователей.

Опять же, я не очень разбираюсь в серверных вещах, мне это просто неинтересно, поэтому я спрашиваю вас всех!

Спасибо!


person Gromer    schedule 09.05.2012    source источник


Ответы (2)


Вот как это работает. По умолчанию приложения asp.net наследуют свои родительские файлы web.config, и вам нужно либо переопределить эти значения в нижнем файле web.config, либо заключить его в атрибут inheritInChildApplications = "false", как вы это сделали выше.

Один из возможных вариантов - сделать свою домашнюю страницу в корне сайта НЕ приложением asp.net. Если вы не можете, вы застряли на этом.

person Erik Funkenbusch    schedule 09.05.2012

на goDaddy вы можете создавать виртуальные каталоги iis с «заданным корнем приложения», что затем заставляет каждый каталог с установленным «заданным корнем приложения» действовать как корневой каталог (как вы хотите). Пользователь ничего не замечает. Чтобы вы могли посмотреть, есть ли у вас такая возможность?

person Wolf-Kun    schedule 09.05.2012
comment
Создание приложения в IIS делает это, просто наследуя родителя. - person Gromer; 09.05.2012