c# - 通过 Asp.Net MVC 应用程序中托管的 SignalR 中心从外部服务向 Web 客户端发送通知

标签 c# architecture signalr

场景如下:我们有一个 Asp.Net MVC 4 应用程序,它有一个私有(private)消息系统,该系统托管一个 signalR 集线器,用于在有新消息时通知用户。一切正常,Web 应用程序注册 connectionId 及其用户名,信号通过 notificationAdapter 类从 DataLayer 发送到集线器。

当我们不得不利用 Quartz.Net 创建一个单独的服务时,问题就来了,该服务在任务完成时也会发送私有(private)消息。我们希望 Quartz 服务能够联系 Hub,但我们不能,因为它在一个单独的进程中。我不想使用 signalR .net 客户端,因为我不需要基于 Quartz 的服务和我的 Web 应用程序之间的永久连接。我想在我的网站中创建一个端点以将 Hub 的服务器方法公开给服务或为此使用 ScaleOut,但我觉得我错过了一些东西,尽管我会问社区。

最佳答案

这可能是一个很晚的答案,但由于没有实际接受的答案。我会提供一个。

让 Quartz.NET 应用程序向 ASP.NET Web 应用程序发送信息而无需实现诸如企业服务总线 (ESB) 之类的繁重解决方案的最简单方法是简单地在 ASP.NET 中公开一个 Web 服务并让您的 Quartz .NET 在其任务完成时调用 ASP.NET Web 服务。进入 ASP.NET Web 服务后,您应该能够返回通知以通过 signalR 向客户端发送通知。

关于c# - 通过 Asp.Net MVC 应用程序中托管的 SignalR 中心从外部服务向 Web 客户端发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19136482/

相关文章:

c# - 如何在 web.config 之外创建连接字符串

javascript - 仪表板应用架构

c# - 三层架构中功能的正确布局

c# - SignalR WebApp.Start(url) 不喜欢文件夹中的其他 exe?

c# - 有没有办法为默认模型绑定(bind)错误构建自定义错误消息,想要摆脱消息中的行和位置

c# - 如何在(重新托管的)工作流设计器中将工作流与旧版本的事件库一起使用?

c# - 现有连接被 WCF 中的远程主机强行关闭

c# - 洋葱架构、持久化和通知

javascript - SignalR 抛出 JavaScript 错误

c# - Web API/OWIN、SignalR 和授权