【问题标题】:Deploying/Installing Self Hosted SignalR Windows Service to Windows Server 2012将自托管 SignalR Windows 服务部署/安装到 Windows Server 2012
【发布时间】:2015-05-07 15:07:51
【问题描述】:

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

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

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

那么关键的问题:

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

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

   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);
    }

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

问候,

【问题讨论】:

  • 只是好奇,为什么不用 IIS 作为主机?
  • @Wasp 由于当前架构脱离系统,它遵循解耦系统的模式。老实说,我可以在 IIS 中运行,但我正在寻找最佳性能 - Self Host 避免了任何类型的 IIS 开销。加上更多的好处。另外我认为如果它不是自托管的,它需要放在一个应用程序中,我当然想避免这种情况。我真的很惊讶我对 Q(s) 没有任何兴趣哈哈。

标签: c# windows-services signalr windows-server-2012


【解决方案1】:

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

installutil.exe SignalRService.exe

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

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

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

【讨论】:

  • 问题是installutil是用Visual Studio(开发者cmd)cmd本地安装的。这在没有 Visual Studio 的情况下部署时不起作用。
  • 不对,installutil.exe 直接自带.NET 框架,当然你必须在服务器上安装。我提到的文章告诉你在哪里可以找到它,这就是 .NET 所在的地方。
  • 好吧,我举手误会了。我会检查一下并回复你。非常感谢!
  • @Wasp...尝试了链接等,安装有问题:stackoverflow.com/questions/30150285/…
猜你喜欢
  • 1970-01-01
  • 2015-12-15
  • 2014-02-06
  • 2013-07-14
  • 2015-09-25
  • 2018-03-16
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多