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

IIS 7 - проблемы с URL-адресом одностраничного приложения при псевдониме

Наш клиент имеет следующую настройку под IIS

Sites
 - applications (binds to http://applications.domain.com)
  - app1
  - app2

app1 и app2 оба являются одностраничными приложениями .NET (комбинация .NET MVC и .NET Web API).

Заявки находятся под C:\inetpub\applications\ папка, и оба были преобразованы в приложения. Таким образом приложение1 доступен по следующему URL-адресу http://applications.domain.com/app1 и app2 доступно под http://applications.domain.com/app2

Проблема, с которой я сталкиваюсь, заключается в том, что все маршруты AJAX относятся к корневому (/) маршруту и ​​поэтому не существуют, например. http://applications.domain.com/api/products не выдает 404, поскольку маршрут фактически http://applications.domain.com/app1/api/products.

Есть ли параметр IIS, который позволит мне сократить эту работу до перезаписи всех моих вызовов AJAX с префиксом? Или есть другой способ настроить такую ​​настройку в IIS? Спасибо.

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

Для этого:

  1. создать поддельный корень документа и поддельный веб-сайт - iis7 нужно место для хранения файла web.config, и это должно быть уникальным для этого приложения. Я бы использовал что-то вроде c: \ inetpub \ applications \ deadroot; добавить сайт IIS, просматривающий эту папку.
  2. Добавьте виртуальное приложение для app1, указанное в папке app1 внутри этого сайта
  3. Добавьте виртуальное приложение для app2, указанное в папке app2 внутри этого сайта

Затем каждый встанет на голову.