Я хочу создать приложение OWIN/WebAPI, имеющее два разных варианта развертывания:
В качестве аналогии - подумайте о Дженкинсе, который можно запустить как внутри Tomcat, так и отдельно.
У меня есть некоторые проблемы с этим:
Я исхожу из фона Java, где все это возможно с умеренной хлопотностью, и я очень зелёв в использовании технологий Microsoft, поэтому любой указатель на то, как достичь этого, будет полезен.
Создайте проект сборки.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. В случае, если у вас возникли проблемы с веб-интерфейсом, который определяет ваши контроллеры, выполните поиск в Интернете для поиска контроллеров во внешних сборках.