Как разместить веб-API ASP. NET, состоящий из нескольких проектов в IIS? - PullRequest
0 голосов
/ 29 января 2020

Я новичок в ASP. NET Web API и сервисах RESTful в целом. Недавно я начал работать над Web API, который уже был запущен другим разработчиком, которого больше нет в компании, и подход, который он использовал для создания этого API, заключался в создании нового проекта для каждого ресурса, который предоставляет API . У меня вопрос: Как правильно разместить этот API в IIS? Я могу создать новый веб-сайт в диспетчере IIS для каждого проекта, но тогда у меня будет много сайтов. Кроме того, в целях тестирования я попытался создать только один веб-сайт в IIS, а затем добавить приложение на веб-сайте для каждой службы, которую необходимо развернуть, и это также работает, проблема в том, что для каждого проекта (ресурса) виртуальный каталог создал, а затем маршрут для доступа к ресурсу включает имя виртуального каталога, и я не хочу этого, потому что тогда маршруты будут выглядеть так:

BaseURL / VirtualDirectory / api / resource

Я гуглил примеры того, как разместить веб-API ASP. NET в IIS, но все посты, которые я нашел, показывают, как разместить один сервисный проект, а не API, который состоит из нескольких проектов. Так что я был бы очень признателен, если бы кто-то указал мне правильное направление. Заранее спасибо.

1 Ответ

0 голосов
/ 30 января 2020

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

Например: VirtualDirectoryName.yourdomain.com/api/resource до www.yourdomain.com/VirtualDirectory/api/resource.

Если это ваше требование, я предлагаю вам попытаться использовать расширение перезаписи URL для достижения ваших требований.

Вы может непосредственно загрузить его из URL ниже: https://www.iis.net/downloads/microsoft/url-rewrite

Затем вы можете использовать приведенное ниже правило переписывания в web.config.

<rule name="Test" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<conditions>
<add input="{HTTP_HOST}" pattern="(.+).sample1.com" />
</conditions>
<action type="Rewrite" url="http://www.sample1.com/{C:1}" />
</rule>
...