我想创建一个具有两种不同部署可能性的OWIN / WebAPI应用程序:
作为类比 - 想想可以在Tomcat内部或独立运行的Jenkins。
我有一些问题:
我来自Java背景,所有这些都是可能的,有轻微的麻烦,我在使用Microsoft技术时非常环保,所以任何关于如何实现这一点的指针都是有益的。
答案 0 :(得分:1)
创建.NET程序集项目并将所有必需的NuGet引用添加到此项目,例如ASP.NET Web API核心(Microsoft.AspNet.WebApi.Core)等。在这里,您将拥有ApiControllers等。当然,根据您的设计,您可能会在自己的项目中拥有域(业务规则等)和数据访问权限。到目前为止,您拥有的项目不会有任何托管问题。
然后,您创建一个空的ASP.NET项目并引用早期的Web API项目。这样,您就可以在IIS(ASP.NET)中托管Web API。您还可以创建一个控制台应用程序并添加OWIN托管所需的NuGet包,当然还有早期的Web API项目。这是使用Katana托管API进行自托管。
BTW,在这样的安排中,不要使用任何托管特定代码,例如HttpContext.Current
。总是,使用框架功能。
PS。如果您在Web API中找到控制器时遇到任何问题,请在Web上搜索以查找外部程序集中的控制器。