Deploying/Installing 自托管 SignalR Windows 服务于 Windows Server 2012

Deploying/Installing Self Hosted SignalR Windows Service to Windows Server 2012

我正处于为自定义 CMS 构建框架的最后阶段,该框架利用 SignalR 来发挥一些魔力。

这个 运行 我在控制台应用程序中非常完美,但在生产环境中却不太理想。因此,我决定将代码移植到 Windows 服务,这并不是特别困难,但实际上关于部署和安装的信息是零散的。

似乎有多个 SO posts 和许多开发人员文章,但它们似乎从未涵盖整个主题。由于 Windows 服务对我来说非常陌生,我希望有人可以分解这是如何完成的。希望应该为其他人提供很好的资源。

所以关键问题:

  1. window 服务的最佳运行目录是什么?
  2. 如何安装? (双击exe)?
  3. 安装后如何运行服务?
  4. SignalR 会永久 运行 在后台吗?

为了 post 的完整性,我将添加一些代码:

   public partial class SignalRService : ServiceBase
    {
        IDisposable SignalR;
        public SignalRService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            string url = "http://localhost:8080";
            SignalR = WebApp.Start(url); 
        }

        protected override void OnStop()
        {
            SignalR.Dispose();
        }
    }

 //Main that starts the service
 static void Main()
   {
      ServiceBase[] ServicesToRun;
      ServicesToRun = new ServiceBase[] 
       { 
         new SignalRService() 
       };
     ServiceBase.Run(ServicesToRun);
    }

如果有人能阐明这些要点并集中资源供其他人查看,我将不胜感激。

此致,

我认为在何处部署服务没有任何限制,任何目录都可以。至于其他的,你可以这样安装:

installutil.exe SignalRService.exe

要启动它,您可以使用 管理工具 下的 服务 面板或命令行 (net start/net stop 命令,参见 here)

只要服务存在,SignalR 就会存在(当然要进行适当的错误处理)。

您可以获得关于所有这些东西的更多详细信息here(例如,您可以在哪里找到 installutil.exe)。