首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重启自托管Signalr

如何重启自托管Signalr
EN

Stack Overflow用户
提问于 2018-10-16 16:46:02
回答 1查看 251关注 0票数 1

我正在使用

代码语言:javascript
复制
WebApp.Start<Startup>(url)

在windows服务中承载Signalr集线器。由于某种原因,我的集线器在运行2-3天后不接受连接,我如何检测它的无响应并重新启动它?

EN

回答 1

Stack Overflow用户

发布于 2018-10-16 17:20:15

首先,您应该找到Windows服务崩溃的原因。写入事件日志,使用try catch块并将每个错误写入事件日志。

控制你的视窗服务怎么样:看一下ServiceController

添加类似这样的方法:

代码语言:javascript
复制
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有问题,那么可以尝试从客户端启动它,例如:

代码语言:javascript
复制
$.connection.hub.disconnected(function() {
   setTimeout(function() {
       $.connection.hub.start();
   }, 5000); // Restart connection after 5 seconds.you can set the time based your requirement
});

欢迎在您的问题中添加包含更多信息的评论

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52831422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档