【发布时间】:2019-01-21 23:24:21
【问题描述】:
我的 Web 应用程序中有一个 tcp 侦听器,它接受连接并从许多设备接收数据。 我希望这个 tcp 监听器在应用程序生命周期开始时启动.. 我将尝试在这里解释这个场景。 假设我的网络应用中有 10 个具有不同功能的页面和一个母版页。
- 登录后,TCP 侦听器应开始连接并从设备接收数据。
如果用户在状态页面或控制页面(状态和控制页面与设备功能控制直接相关)页面的数据 应该更新,只要监听器从客户端接收到任何数据 设备。
如果用户在任何其他页面上执行其他任务,并且来自后端的 tcp 侦听器收到一些触发,例如警报,因为它应该 一直在后端运行并接收数据,所以它应该显示一个 提醒用户是否在任何页面上。
那我应该怎么做呢? 我应该使用 Global.asax.cs 中的库文件吗?
就像侦听器方法应该一直运行并返回接收到的数据,但我会随时从侦听器捕获数据。
我怎样才能做到这一点?任何建议或指导表示赞赏。
是否可以通过制作网络服务。如果是,那么我该如何以这种方式使用网络服务?
【问题讨论】:
-
您不应该在 ASP.NET 应用程序(或一般的 Web 应用程序,IMO)中拥有长期服务(如套接字侦听器),因为 Web 应用程序主机(即 IIS)可以并且将随意重置您的应用程序代码,而不会发出警告。您应该在作为专用 Windows 服务运行的单独进程中运行您的套接字服务器,并使用某种形式的 IPC 与您的 ASP.NET 应用程序进行通信。
-
是的..我已经搜索并得到了类似的东西,但我也认为在特定条件下询问是否有除 Windows 服务之外的任何其他方式是没有害处的。但是,是的,谢谢你,我会开始这样工作。
-
但是我也认为问题仍然存在。如果 Windows 服务从设备接收到任何值以触发警报,我将如何在网页上显示警报。它是 Windows 服务,当它获得特定值时应该中断我的网络应用程序
标签: c# asp.net web-applications tcp tcpclient