【发布时间】:2018-11-01 13:58:34
【问题描述】:
首先,如果这是一个重复的问题,我提前道歉。
我编写了一个 Windows 服务 (c# .net 4.7),它创建一个到我的警报面板的 TcpClient 连接并侦听传入数据,然后将数据转发到我用来连接其他服务的网站。为了可靠性,我想将此功能移植到 c# MVC 网站,以便我可以监控它的状态(确保它仍然连接,警报没有响起等)。
我开始创建一个 MVC 项目并在 global.asax 文件中启动一个新线程,该线程加载/运行我最初为 winService 创建的类。
Application["MyTcpClass"] = new MyTcpClass();
然后在我的 HomeController 中,我添加了一个 Poll() ActionResult:
public void Poll()
{
MyTcpClass objClass = (MyTcpClass)Application["MyTcpClass"];
//If objClass is null, recreate/reconnect it
objClass.Poll();
}
在我进一步开始添加返回状态等的方法之前,我想与大家核实一下这是否是一个好方法和/或是否有更好的方法?
提前致谢!
【问题讨论】:
-
“我开始一个新线程”不,不是一个好主意。不要在 ASP.NET 中创建自己的线程。
-
同意,我知道在 asp.net 中创建后台任务/线程/作业有点超出 asp.net 可以做的范围,但我需要这个 TCP 连接尽可能接近尽可能永久(Poll() actionresult 的一部分是在断开连接时重新连接)
标签: c# asp.net asp.net-mvc vb.net