我正在使用
WebApp.Start<Startup>(url)在windows服务中承载Signalr集线器。由于某种原因,我的集线器在运行2-3天后不接受连接,我如何检测它的无响应并重新启动它?
发布于 2018-10-16 17:20:15
首先,您应该找到Windows服务崩溃的原因。写入事件日志,使用try catch块并将每个错误写入事件日志。
控制你的视窗服务怎么样:看一下ServiceController类
添加类似这样的方法:
public void StartService()
{
using (ServiceController service = new ServiceController(serviceName))
{
try
{
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running);
}
catch (Exception ex)
{
throw new Exception($"Can not Start the Windows Service [{serviceName}]", ex);
}
}
}
public void StartOrRestart()
{
if (IsRunningStatus)
RestartService();
else if (IsStoppedStatus)
StartService();
}更新:如果您只有Hub有问题,那么可以尝试从客户端启动它,例如:
$.connection.hub.disconnected(function() {
setTimeout(function() {
$.connection.hub.start();
}, 5000); // Restart connection after 5 seconds.you can set the time based your requirement
});欢迎在您的问题中添加包含更多信息的评论
https://stackoverflow.com/questions/52831422
复制相似问题