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

Доступ к веб-приложениям IIS через различные привязки

Я размещаю несколько веб-приложений на IIS 7.5 в Windows Server 2008 R2. У сервера один IP-адрес, и я использую имена хостов, чтобы различать привязки к каждому приложению. Сервер имеет другой псевдоним DNS, соответствующий именам хостов, поэтому все работает нормально в корпоративной сети. Например:

Дело в том, что я также хочу, чтобы пользователи могли получить доступ к приложениям из-за пределов корпоративной сети, используя IP-адрес сервера (который является общедоступным). Это означает, что IIS также должен распознавать запросы, сделанные в форме http://xxx.xxx.xxx.xxx/intranet как соответствующее веб-приложению Intranet. Единственный способ добиться этого, который я нашел, - это поместить физические папки для всех веб-приложений в физическую папку веб-сайта по умолчанию и оставить привязку по умолчанию для этого сайта. Это означает, что:

Теоретически все должно работать нормально, но я наткнулся на следующую проблему. Большинство веб-приложений, которые я размещаю, являются приложениями ASP.NET и используют файлы web.config. Когда я напрямую обращаюсь к одному из этих приложений с помощью первого метода (то есть с использованием имени хоста), все работает нормально. Однако, когда я обращаюсь к нему с помощью второго метода, IIS жалуется, что некоторые настройки в web.config находятся на неправильном уровне. Я знаю, почему это происходит: запрос к IIS направляется в физическую папку в веб-приложении более высокого уровня, а не в веб-приложение, которое я собираюсь посетить, из-за того, как я настроил привязки.

Мой вопрос: поскольку эта стратегия конфигурации нарушает поведение ASP.NET web.config (и, возможно, другие вещи), есть ли другие альтернативы, которые я должен рассмотреть, чтобы разрешить доступ как по имени, так и по IP? Спасибо.

РЕДАКТИРОВАТЬ. Я нашел решение этой проблемы сейчас; пожалуйста, посмотрите мой собственный ответ ниже.

Я нашел решение этой проблемы.

Вот что я делаю сейчас. Я настроил каждое веб-приложение как:

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

Например, веб-приложение интрасети отображается в IIS как сайт с именем «Интрасеть» с привязкой к имени узла «интрасеть», так что люди, обращающиеся к серверу как http: // интрасеть / будет направлен туда; и он также отображается как веб-приложение с именем «Интранет» на веб-сайте сервера по умолчанию, так что пользователи, обращающиеся к серверу как http://xxx.xxx.xxx.xxx/intranet будет отправлен туда также. Это два разных способа доступа к одной и той же физической папке и одному и тому же содержимому, и они работают безупречно.

Спасибо всем, кто помогал!

Вкратце: не используйте второй метод.

В привязках сайта для сайта просто укажите как интрасеть и yourpublicname.yourdomain.com в качестве заголовков хоста.

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

Перевод пути на сайт и с сайта - дело непростое; лучше сохранить тот же макет сайта и просто добавить привязку?

(Почему бы не сделать это?)