Можно ли создать приложение OWIN, которое может быть размещено как в виде отдельного приложения, так и внутри IIS одновременно?

1

Я хочу создать приложение OWIN/WebAPI, имеющее два разных варианта развертывания:

  1. Как автономное приложение (самообслуживание OWIN), поскольку оно может быть частью набора инструментальных средств.
  2. Как веб-приложение, размещенное внутри сервера IIS.

В качестве аналогии - подумайте о Дженкинсе, который можно запустить как внутри Tomcat, так и отдельно.

У меня есть некоторые проблемы с этим:

  1. Нужны ли мне два разных класса запуска?
  2. Как я могу построить проект для создания двух разных сборок (EXE и DLL)
  3. Как я могу сообщить IIS, что код приложения находится внутри EXE

Я исхожу из фона Java, где все это возможно с умеренной хлопотностью, и я очень зелёв в использовании технологий Microsoft, поэтому любой указатель на то, как достичь этого, будет полезен.

Теги:
iis
owin

1 ответ

1
Лучший ответ

Создайте проект сборки.NET и добавьте все необходимые ссылки NuGet к этому проекту, такие как ядро ASP.NET Web API (Microsoft.AspNet.WebApi.Core) и т.д. Здесь вы будете иметь свои ApiControllers и т.д. Конечно, на основе вашего дизайн, у вас, вероятно, будет домен (бизнес-правила и т.д.) и доступ к данным в собственных проектах. Пока что у вас не будет проблем с хостингом.

Затем вы создаете пустой проект ASP.NET и ссылаетесь на предыдущий проект веб-API. Таким образом, вы можете разместить свой веб-API в IIS (ASP.NET). Вы также можете создать консольное приложение и добавить пакеты NuGet, необходимые для хостинга OWIN, и, конечно же, более ранний проект веб-API. Это для самостоятельного хостинга с использованием API-интерфейса Katana.

BTW, в таком расположении, не используют какой-либо хостинг определенного кода, такого как HttpContext.Current. Всегда используйте возможности платформы.

PS. В случае, если у вас возникли проблемы с веб-интерфейсом, который определяет ваши контроллеры, выполните поиск в Интернете для поиска контроллеров во внешних сборках.

https://www.google.com/search?q=+asp.net+web+api+locating+controllers+in+external+assemblies&oq=+asp.net+web+api+locating+controllers+in+ внешние узлы +

Ещё вопросы

Сообщество Overcoder
Наверх
Меню