【问题标题】:use owin to self host web api使用 owin 自托管 web api
【发布时间】:2019-02-24 08:49:06
【问题描述】:
我在基于 MVC 架构的客户端-服务器应用程序上使用 owin 自托管 Web api。我看到很多代码示例显示带有配置的 Startup 类和带有 Main 方法的 Program 类启动 owin self host “using (WebApp.Start(url: baseAddress))” - 在同一个项目中.我是否应该绝望地自己托管一个项目,以便 WebApp.Start 将在一个项目中,而带有 Startup claas 的 web api 将在另一个项目中,以及所有控制器等等?
【问题讨论】:
标签:
c#
.net
asp.net-web-api2
owin
【解决方案1】:
发现受关注点分离启发可能是个好主意:自主机不应该知道服务器,反之亦然。 Owin和web api有不同的工作,所以需要分开。
【解决方案2】:
常见的答案是视情况而定。通常自托管应用程序很容易提供一些简单的功能。在这种情况下,由于这两个部分都很简单,因此无需将它们分开(主机代码和Asp.Net Mvc),它们可以作为应用程序层放置在一个项目中。但是,如果您试图为主机代码添加一些复杂性(例如,对 Asp.Net Mvc 应用程序进行一些预热),那么您可能应该将主机代码和 Asp.Net Mvc 应用程序代码拆分为两个项目。