【问题标题】:ASP.NET Core deployment optionsASP.NET Core 部署选项
【发布时间】:2016-12-16 12:43:38
【问题描述】:

我们刚刚开始在开发中使用 ASP.NET Core。有一些未解决的问题我还没有真正找到有用的资源。以下最佳实践或区别是什么,它们都有效吗?

ASP.NET Core + .NET 4.6

1) 在 IIS 上

2) 在 OWIN 上独立

3) OWIN + IIS

ASP.NET Core + .NET Core:

1) 在 IIS 上(已发布)

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

3) 独立 Kestrel + IIS 反向代理(QA 和生产

谢谢!

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

【问题讨论】:

  • 我不确定Asp.Net Core 是否有 OWIN。
  • Asp.Net Core 是否可以在 IIS 上运行或在 Kestrel 上独立运行,或者然后在 IIS 上的 .Net 4.6 上运行 Asp.Net Core 或在 OWIN 上独立运行?
  • @afsharm 请参阅github.com/ymoradi/OwinAspNetCore 这是一个在具有完整 .net 框架的 ASP.NET Core 管道上使用 owin、asp.net web api odata、signalr 等的示例应用程序,这是一个示例应用程序在 asp.net 核心和 .net 核心上使用 nancy,使用 owin 管道。 hanselman.com/blog/… ASP.NET Core 独立于管道和服务器。
  • @LexLi 您的评论显然是错误的,ASP.NET Core 是管道和服务器独立的,您可以在 .net core 和完整的 .Net 中使用 asp.net core 中的 Owin 管道和 owin 服务器,请参阅我之前的评论。
  • @YasserMoradi 感谢您的推荐。使用 asp.net 核心(即使在完整框架中)的 odata 对我们非常有用。

标签: .net iis asp.net-core owin .net-core


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    建议不要直接暴露独立(红隼)服务器,而是在(反向)代理后面。像 IIS、apache 或 nginx。见docs.asp.net

    【讨论】:

    • 如果 IIS 用作反向代理,那么运行 Kestrel 的原因是什么?那为什么不直接使用 IIS 呢?
    • @user1340582 因为 IIS 仅适用于 Windows :) ?
    • @goaty 当然可以,但在 Linux 上也是如此。如果您需要 JBoss 作为 Linux 上 Kestrel 的反向代理,您的第一个问题是问,为什么您的应用程序不能在 JBoss 本身内运行:)
    • @user1340582 Kestrel 是一个托管库,它解析请求并为您提供 HttpContext。 IIS/nginx... 是处理负载平衡、过滤、应用程序生命周期的 Web 服务器... asp.net 核心与 Web 服务器完全解耦 :)
    【解决方案3】:

    这是完整场景的列表:

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

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      • 2019-03-06
      • 1970-01-01
      相关资源
      最近更新 更多