【问题标题】:SignalR in ASP.Net Core self hostASP.Net Core 自托管中的 SignalR
【发布时间】:2020-06-23 17:46:56
【问题描述】:

是否仍然可以在不使用 IIS / Kestrel 的情况下自行托管 SignalR Hub(服务器)?

MS 没有任何信息,好像仍然可以(使用 asp.net 核心迁移)来实现这一点。

我的用例是能够将客户端和服务器都部署到本地计算机,然后能够在稍后阶段轻松切换到远程服务器。理想情况下,客户端将暂时托管服务器。

【问题讨论】:

    标签: c# .net asp.net-core signalr


    【解决方案1】:

    ASP.NET Core 暗示使用 Kestrel 作为其 Web 服务器。这意味着,为了托管 SignalR 集线器(服务器),您需要使用 Kestrel 并基本上构建 ASP.NET Core 应用程序。

    但是,您不需要使用 IIS 或其他一些 Web 服务器来托管应用程序。 Kestrel 本身已经是一个完整的 Web 服务器,因此您可以直接使用它而无需其他任何东西。

    托管 SignalR 集线器的 ASP.NET Core 应用程序也不需要执行任何其他 Web 操作。只包含单个集线器并托管它是完全可以的。所以你通常不需要太担心。

    因此,为了解决您的用例:是的,您可以拥有一个单独的 ASP.NET Core 应用程序来托管集线器,并直接在客户端上启动它,客户端可以连接到它。然后稍后您可以让另一个 ASP.NET Core 应用程序托管在其他地方运行的集线器,然后重新配置客户端以使用该应用程序。

    【讨论】:

      【解决方案2】:

      是的,您可以自行托管 .NET Core SignalR。

      SignalR 服务器通常托管在 IIS 的 ASP.NET 应用程序中,但也可以使用自托管库进行自托管(例如在控制台应用程序或 Windows 服务中)。

      您可以阅读更多关于它的信息here

      【讨论】:

      • 那是asp.net(非核心)的文档,不是吗? -> 本文档不适用于最新版本的 SignalR。看看 ASP.NET Core SignalR。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      • 2019-07-22
      • 2016-01-21
      • 2020-05-07
      • 2013-07-14
      相关资源
      最近更新 更多