ASP.NET 核心部署选项

ASP.NET Core deployment options

我们刚刚开始在开发中使用 ASP.NET Core。有几个悬而未决的问题,我还没有真正找到有用的资源。下面的 best-practices 或区别是什么,它们都有效吗?

ASP.NET 核心 + .NET 4.6

1) 在 IIS 上

2) OWIN 上独立

3) OWIN + IIS

ASP.NET 核心 + .NET 核心:

1) 在 IIS 上(已发布)

2) 独立 Kestrel(开发和测试环境)

3) 独立 Kestrel + IIS reverse-proxy(QA 和生产

谢谢!

编辑:我的标题和问题选项无效,因此我更改了它们以反映我目前的理解。

建议不要直接公开独立(kestrel)服务器,而是在(反向)代理之后公开。像 IIS、apache 或 nginx。参见 docs.asp.net

Kestrel 也在完整框架(.NET 4.5、4.6)上运行。所以对于 ASP.NET 核心 Kestrel + 反向代理是必经之路。

这是完整场景的列表:

对于自动化 E2E 测试,您可以使用 Owin 测试服务器或 ASP.NET 核心测试服务器 对于 Development/QA/Production,您可以使用 IIS/Kestrel、IIS/WebListener(仅限预览版和 Windows,但有好处)、IIS/Owin(Katana)、IIS/Nowin。 请记住,ASP.NET 核心独立于服务器和管道,您可以使用 asp.net 核心管道并在其中使用 owin 管道,您可以使用 owin 管道并在其中使用 asp.net 核心管道。您甚至可以从头开始开发服务器和管道,(在我的一个应用程序中对我来说真的很有用)。首先,我建议您将 asp.net 核心与完整的 .net 框架与 owin 和 asp.net 核心管道一起使用。您可以使用 ASP.NET Core features such ASP.NET Core MVC 1,您可以同时使用 ASP.NET Web API OData、Signalr、web hooks、thinktecuture identity server based on owin边。并等待 ASP.NET Signalr、thinktecuture 身份服务器 4 等的核心/.NET 核心实现。请记住,.NET 核心不是 .NET 标准 2.0 的投诉。之后您的迁移将变得容易得多。 这是一个示例工作应用程序: https://github.com/ymoradi/OwinAspNetCore