Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将自托管SignalR Windows服务部署/安装到Windows Server 2012_C#_Windows Services_Signalr_Windows Server 2012 - Fatal编程技术网

C# 将自托管SignalR Windows服务部署/安装到Windows Server 2012

C# 将自托管SignalR Windows服务部署/安装到Windows Server 2012,c#,windows-services,signalr,windows-server-2012,C#,Windows Services,Signalr,Windows Server 2012,我正在为定制CMS构建一个框架的最后阶段,该框架利用了CMS的SignalR来实现一些功能 我在控制台应用程序中运行得非常完美,但在生产环境中却不太理想。因此,我决定将代码移植到一个Windows服务上,这并不特别困难,但实际上关于部署和安装的信息非常零散 似乎有多篇SO帖子和许多开发人员文章,但它们似乎从未涵盖整个主题。由于Windows服务对我来说非常陌生,我希望有人能解释一下它是如何实现的。希望能为其他人提供一个很好的资源 因此,关键问题是: 窗口服务的最佳目录是什么? 如何安装?双击ex

我正在为定制CMS构建一个框架的最后阶段,该框架利用了CMS的SignalR来实现一些功能

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

似乎有多篇SO帖子和许多开发人员文章,但它们似乎从未涵盖整个主题。由于Windows服务对我来说非常陌生,我希望有人能解释一下它是如何实现的。希望能为其他人提供一个很好的资源

因此,关键问题是:

窗口服务的最佳目录是什么? 如何安装?双击exe? 安装后如何运行该服务? 信号器是否会在后台永久运行? 为了保持文章的完整性,我将添加一些代码:

   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命令,请参阅

当然,只要服务能够正确地处理错误,信号器就会一直处于活动状态


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

只是好奇,为什么不将IIS作为主机?@Wasp由于系统外的当前体系结构,它遵循一种解耦系统的模式。老实说,我可以在IIS中运行,但我正在寻找最佳性能-Self-Host可以避免任何类型的IIS开销。还有更多的好处。此外,我认为如果它不是自托管的,它需要放在应用程序中,这是我当然希望避免的。事实上,我很惊讶我对Qs没有任何兴趣,哈哈。问题是installutil是用VisualStudioDeveloper cmd在本地安装的。在没有Visual Studio的情况下进行部署时,这不起作用。不正确,installutil.exe直接随.NET framework提供,当然您必须在服务器上安装。我提到的这篇文章告诉你在哪里可以找到它,也就是.NET所在的地方。我举手示意你弄错了。我会检查一下,然后再给你回复。非常感谢@Wasp…尝试了链接等,安装时出现问题: