是否可以创建一个OWIN应用程序,可以同时作为独立应用程序和IIS内部托管?

时间:2014-10-11 11:33:24

标签: c# asp.net iis owin

我想创建一个具有两种不同部署可能性的OWIN / WebAPI应用程序:

  1. 作为独立应用程序(OWIN自托管),因为它可能是工具包的一部分。
  2. 作为IIS服务器内托管的Web应用程序。
  3. 作为类比 - 想想可以在Tomcat内部或独立运行的Jenkins。

    我有一些问题:

    1. 我需要两个不同的启动类吗?
    2. 如何构建项目以生成两个不同的程序集(EXE和DLL)
    3. 如何通知IIS应用程序代码在EXE中
    4. 我来自Java背景,所有这些都是可能的,有轻微的麻烦,我在使用Microsoft技术时非常环保,所以任何关于如何实现这一点的指针都是有益的。

1 个答案:

答案 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上搜索以查找外部程序集中的控制器。

https://www.google.com/search?q=+asp.net+web+api+locating+controllers+in+external+assemblies&oq=+asp.net+web+api+locating+controllers+in+external+assemblies