【问题标题】:Using ASP.NET Web application as SignalR client使用 ASP.NET Web 应用程序作为 SignalR 客户端
【发布时间】:2015-06-04 06:25:58
【问题描述】:

我的团队正在决定我们后端系统的架构:

  1. Webserver A 是一个带有 ASP.NET Web API 组件的 ASP.NET MVC 应用程序,托管在 Azure 网站中。
  2. Windows 服务 B 是一个自托管的 OWIN 服务器,它会定期向订阅通知的客户端推送通知,托管在 Azure VM 中。
  3. Windows 服务 C 是订阅来自 B 的通知的客户端,托管在 Azure VM 中。

由于我们或多或少地在 .NET 堆栈中根深蒂固,我们将 B 实现为 SignalR 服务器,而 C 是 SignalR 客户端。这部分似乎运行良好。

现在我们也希望 A 订阅 B,但我意识到这意味着 ASP.NET Web 服务器将充当 SignalR CLIENT,而不是充当 @987654325 的典型场景@ 服务器。

我想我们可以在Global.asax 中初始化SignalR 连接并让进程一直运行以避免AppDomain 循环。但是,当让 Web 服务器执行除服务 Web 请求之外的其他事情时,我觉得有点不确定。该解决方案还使 Web 服务器不是无状态的,因为它需要保持 Web 套接字连接处于活动状态。

ASP.NET 应用程序设置为SignalR 客户端是否存在根本问题?这个设置有什么可能的问题吗?

【问题讨论】:

    标签: asp.net azure windows-services signalr


    【解决方案1】:

    在 Azure 中,您无法判断您的 AppDomain 不会回收。由于许多原因,它可以重新启动以进行修复,然后您最终将与 SingleR 服务器建立新连接。你可以吗?

    SingleR 还主要用于 Web 功能改进,使 Web 客户端上的轮询和刷新变得简单。但是由于您的要求似乎都是后端的东西,我建议您使用任何其他事件驱动模式。检查 Azure 服务总线主题/订阅模型,让不同的组件侦听各种事件并采取相应措施。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 2020-09-20
      • 1970-01-01
      • 2022-09-24
      相关资源
      最近更新 更多