Как Katana/IIS справляется с конфликтами. WebApi в WinService и веб-сайт в IIS — кто победит?

У меня есть IIS, настроенный на множество веб-сайтов. Теперь я хочу установить WebApi, размещенный с помощью OWIN/Katana, в службе Windows (используя верхнюю полку). Может ли мой WebApi использовать тот же порт, что и IIS?

Будет ли это работать? Что, если я использую то же имя - кто победит?

Спасибо за любую помощь - я немного запутался здесь.

Ларси


person Larsi    schedule 07.05.2015    source источник


Ответы (1)


Теоретически это возможно сделать.

Windows позволяет резервировать URL-адреса для разных служб, чтобы они могли прослушивать определенный URL-адрес. Как только резервирование выполнено и приложения начинают прослушивать запросы, API HTTP-сервера направляет входящие запросы к различным службам. Вот объяснение того, как это происходит:

Маршрутизация входящих запросов

С помощью веб-API очень легко настроить службу для прослушивания конкретного URL-адреса, и она не будет мешать маршрутизации других URL-адресов.

Проблема в ИИС. IIS позволяет настроить сайт только по корневому URL-адресу, а не по конкретному URL-адресу. Нет конкретной документации о том, как это резервирование делается. Но вы можете увидеть это сами, используя netsh:

  1. откройте командную строку и запустите netsh
  2. вы увидите подсказку netsh>
  3. введите http. Подсказка теперь должна читаться как netsh http>
  4. введите show urlacl

Это покажет вам полный список резервирований URL-адресов для всех служб на машине. ПРИМЕЧАНИЕ. Вы можете сбросить вывод в файл, запустив это из командной строки: netsh http show urlacl > c:\users\jotabe\documents\urlacls.txt

Со всей этой информацией вы можете настроить IIS и службу веб-API, проверить созданные ими регистрации и, в соответствии с правилами связанного документа, посмотреть, будет ли работать то, что вы хотите сделать, или нет.

person JotaBe    schedule 07.05.2015