【问题标题】:call TCP listener on application start在应用程序启动时调用 TCP 侦听器
【发布时间】:2019-01-21 23:24:21
【问题描述】:

我的 Web 应用程序中有一个 tcp 侦听器,它接受连接并从许多设备接收数据。 我希望这个 tcp 监听器在应用程序生命周期开始时启动.. 我将尝试在这里解释这个场景。 假设我的网络应用中有 10 个具有不同功能的页面和一个母版页。

  1. 登录后,TCP 侦听器应开始连接并从设备接收数据。
  2. 如果用户在状态页面或控制页面(状态和控制页面与设备功能控制直接相关)页面的数据 应该更新,只要监听器从客户端接收到任何数据 设备。

  3. 如果用户在任何其他页面上执行其他任务,并且来自后端的 tcp 侦听器收到一些触发,例如警报,因为它应该 一直在后端运行并接收数据,所以它应该显示一个 提醒用户是否在任何页面上。

那我应该怎么做呢? 我应该使用 Global.asax.cs 中的库文件吗?

就像侦听器方法应该一直运行并返回接收到的数据,但我会随时从侦听器捕获数据。

我怎样才能做到这一点?任何建议或指导表示赞赏。

是否可以通过制作网络服务。如果是,那么我该如何以这种方式使用网络服务?

【问题讨论】:

  • 您不应该在 ASP.NET 应用程序(或一般的 Web 应用程序,IMO)中拥有长期服务(如套接字侦听器),因为 Web 应用程序主机(即 IIS)可以并且将随意重置您的应用程序代码,而不会发出警告。您应该在作为专用 Windows 服务运行的单独进程中运行您的套接字服务器,并使用某种形式的 IPC 与您的 ASP.NET 应用程序进行通信。
  • 是的..我已经搜索并得到了类似的东西,但我也认为在特定条件下询问是否有除 Windows 服务之外的任何其他方式是没有害处的。但是,是的,谢谢你,我会开始这样工作。
  • 但是我也认为问题仍然存在。如果 Windows 服务从设备接收到任何值以触发警报,我将如何在网页上显示警报。它是 Windows 服务,当它获得特定值时应该中断我的网络应用程序

标签: c# asp.net web-applications tcp tcpclient


【解决方案1】:

这是一个漫长的答案。在 @Dai 的建议下 .... 这里的答案是使用 SignalR 和 Windows 服务。 我将创建一个 Windows 服务来打开一个 tcp 连接,它会在收到数据时与数据库进行通信。 然后我网页上的 SignalR 将监视数据库,每当数据库中发生任何更新时,它都会在网页上更新。

【讨论】:

    猜你喜欢
    • 2023-02-01
    • 2012-08-30
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 2014-12-11
    • 2012-11-27
    • 1970-01-01
    • 2012-05-29
    相关资源
    最近更新 更多