OWIN Katana、Webapi、MVC 都在单独的项目中

Posted

技术标签:

【中文标题】OWIN Katana、Webapi、MVC 都在单独的项目中【英文标题】:OWIN Katana, Webapi, MVC all in separate projects 【发布时间】:2014-07-03 16:07:56 【问题描述】:

我有一个项目目前正在使用 MVC5、WebApi2 和 OWIN。它变得比我预期的要大得多,我正在考虑将其拆分为单独的项目。我会将业务逻辑和数据访问移到一个新项目中,但后来我正在考虑将 webapi 和 mvc 拆分为另外 2 个项目。

真的,MVC 很少。基本上只有 /index.cshtml 和 /Help 页面。其他一切都是杜兰达尔。我在想如果我把它移出主要项目,那么我在托管方面会有一些灵活性。看起来应用程序的 MVC 部分很重,不需要。

然后我会创建一个 webapi 项目,无论如何,这确实是所有事情发生的地方。

我一直在考虑使用 OWIN 管道并将 webapi 包装为中间件,将 mvc 项目包装为中间件。然后我可以有多个可用于不同配置的启动类。我喜欢这个想法的一件事是 webapi 和 mcv 应用程序可以单独使用或一起使用。无论哪种情况,由于 OWIN 的性质,它可以自托管或通过 IIS 运行。

现在我的问题是…… 这真的有意义吗?有可能单独运行 webapi 服务。在这样的设置中,我是否需要承担任何潜在的损失?

谢谢。

【问题讨论】:

【参考方案1】:

@mnfact :- 我建议您创建两个单独的解决方案,一个使用 WebApi2、OWIN,另一个使用 MVC5。这将是一个很好的设计。请通过链接:-“MVC & Web Api projects within same Solution”

我认为分别为 WebApi 和 MNV5 项目提供身份验证时可能会出现问题。对于必须解决控制器之间的依赖关系的数据上下文也是如此。

希望对您有所帮助!

【讨论】:

以上是关于OWIN Katana、Webapi、MVC 都在单独的项目中的主要内容,如果未能解决你的问题,请参考以下文章

asp.net web api 自托管 / owin / katana

具有 OpenId owin katana 中间件的多个 MVC 应用程序的单个注销 Identity Server3

OWIN 的这些用法可能吗?

Katana/IIS 如何处理冲突。 WinService 中的 WebApi 和 IIS 中的网站 - 谁赢了?

OWIN与Katana

autofac + owin + webform + mvc + webapi集成demo