Разверните ASP.NET Core Web API с интерфейсом Swagger для Windows Server 2012 (IIS 8), на котором размещены несколько других веб-сайтов. - PullRequest
0 голосов
/ 21 марта 2019

Я разработал простой веб-API с ASP.NET Core 2.2, который имеет Swagger UI (через Swashbuckle).Я назову это «my_api» здесь.

Я использую Visual Studio 2017 для Windows 7. Для разработки.

Это веб-приложение хорошо работает на моем локальном хосте при разработке (конечно).

http://localhost:5000/swagger

Этот URL откроет интерфейс пользователя.

http://localhost:5000/api/[endpoints]

Эти конечные точки URL будут получать различные ресурсы из базы данных.


Что яхочу достичь (не уверен, если это возможно):

Я хочу развернуть это веб-приложение на Windows Server 2012 под управлением IIS 8, на котором уже работают три других относительно статических веб-сайта.

Я хочу развернуть сборку в папке ("my_api_folder") в "wwwroot" на этом сервере.Затем:

http://www.server-domain.com/my_api_folder/swagger

откроет пользовательский интерфейс swagger.

http://www.server-domain.com/my_api_folder/api/[endpoints]

вызовет мои различные конечные точки API.


Что я сделал:

Я создаю (публикую) веб-приложение, используя VS 2017, в папку.

Я строю его как автономное развертывание (SCD), надеясь, что его будет проще развернуть.

Используемая мной цель сборки (RID) - win-x64.

После завершения процесса сборки у меня есть один исполняемый файл ("my_api.exe"), несколько библиотек DLL и другие.Файлы assets / config в папке «publish». Сгенерировано .Net Core.

Я могу запустить этот исполняемый файл на моей локальной машине, дважды щелкнув по нему.Он прослушивает localhost: 5000 и все работает хорошо.

Затем я развертываю (копирую и вставляю) все файлы сборки в папку "my_api_folder" на сервере.


Проблемы, с которыми я сталкиваюсь:

После развертывания оба

http://www.server-domain.com/my_api_folder/swagger

и

http://www.server-domain.com/my_api_folder/api/[endpoints]

вернут 500 Internal Server Error.

Затем я пытаюсь дважды щелкнуть исполняемый файл на сервере, он запустится.(Показывает прослушивание на localhost: 5000).

Однако я не могу открыть http://localhost:5000/swagger (или http://127.0.0.1:5000/swagger) на сервере или вызвать API. (404 Не найдено набраузер IE сервера.)

Я также не могу получить доступ к этим маршрутам извне сервера. Но на этот раз он долго зависает и в итоге показывает, что шлюз не отвечает.

Но

netstat -a -o -n

показывает, что my_api.exe действительно прослушивает порт 5000 после того, как я запустил исполняемый файл вручную.


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

Пожалуйста, посоветуйте, как мне отладить это?

В чем могут быть причины?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знатьтоже.

Спасибо.

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