Назад | Перейти на главную страницу

Что лучше в IIS: разместить несколько приложений как независимые веб-сайты или как виртуальные каталоги на сайте по умолчанию?

Задний план

Недавно я разработал приложение MVC для клиента, и они хотели бы разместить его вместе с несколькими другими приложениями на том же сервере.

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

Однако вместо этого клиент хотел бы создать виртуальный каталог на сайте по умолчанию, который указывает на приложение. Так, например, у вас будет:

COMPANY.COM/APP1 и COMPANY.COM/APP2

Скорее, чем:

APP1.COMPANY.COM и APP2.COMPANY.COM

это сделал работай; однако он конфликтовал с относительными URL-адресами в стандартной разметке HTTP, и проблема была быстро решена.

Вопрос

Что лучше: разместить несколько веб-приложений на одном сервере в качестве отдельных сайтов или виртуальных каталогов на веб-сайте по умолчанию? Есть ли подводные камни в подходе к виртуальному каталогу?

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

Я всегда старался придерживаться отдельных сайтов для приложений. Вы получаете гораздо больший контроль над всем, и если вы используете ASP.NET, вы не сталкиваетесь с каскадными проблемами web.config, которые легко решить. Кроме того, у вас есть более точный контроль над пулами приложений и фактическая возможность наблюдать за производительностью каждого отдельного приложения. Это все предпочтения.

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

Кроме того, как вы упомянули, вам почти нужно программировать с учетом механизма развертывания. Поскольку любое использование относительных URL-адресов ломает многое.

Наконец: почему они не хотят использовать поддомены? Если вы спросите меня, он обеспечивает хорошее чистое разделение ресурсов RESTfulish.

Я бы сказал, это зависит от обстоятельств ... Очень ли приложения похожи друг на друга в том, что вам было бы удобно вносить одно изменение на более высоком уровне, которое каскадно переходило бы в каждый виртуальный каталог, что не повлияло бы на функциональность какого-либо отдельного приложения? Если у вас есть отдельный сайт для каждого приложения, вам нужно будет отдельно управлять настройками каждого сайта (сертификатами, IP-адресами, портами и т. Д.), Что может стать головной болью, если их много, но они являются полностью независимыми сайтами, поэтому настройка не повлияет на другое приложение. Реальная работа выполняется рабочим процессом / пулом приложений, поэтому при любой настройке вы можете использовать один и тот же пул приложений для нескольких приложений или иметь отдельный пул для каждого приложения.

  • Приложения на отдельных сайтах = гораздо более детальный контроль над приложением и способами подключения к нему за счет большего обслуживания каждого сайта
  • Приложения на том же сайте = легче управлять, если они все очень похожи, но вы можете столкнуться с проблемами конфигурации, если приложения имеют противоречивые требования