【问题标题】:SignalR self hosting on Windows ServiceSignalR 在 Windows 服务上自托管
【发布时间】:2014-02-06 00:06:54
【问题描述】:

我在 C# (vs2013) 上编写了一个小型 POC 应用程序(控制台应用程序),它构成:主机和客户端。

主机端代码:

string url = "http://*:8900/";

using (WebApp.Start(url))
{
    Console.WriteLine("Server running at " + url);
    lock (just4lock)
        Monitor.Wait(just4lock);
}

只有当我使用“以管理员身份运行”运行我的(控制台)应用程序时它才有效。

好的,现在我想将此代码移至我的 Windows 服务应用程序。当我在 Windows 服务上运行相同的主机代码时,出现此错误:

An unhandled exception of type 'System.MissingMemberException' occurred in Microsoft.Owin.Hosting.dll

Additional information: The server factory could not be located for the given input: Microsoft.Owin.Host.HttpListener

我的服务作为“本地系统帐户”运行。我没有看到任何使其“以管理员身份运行”的选项。

您知道在没有管理员的情况下让 SignalR 自托管工作的方法吗?

我怎样才能让这个windows服务以管理员身份运行?

谢谢!

【问题讨论】:

    标签: c# windows-services signalr


    【解决方案1】:

    我遇到了同样的问题,我的解决方案就是在我的项目中添加对程序集 Microsoft.Owin.Host.HttpListener 的引用。

    【讨论】:

      【解决方案2】:

      您是否尝试过使用已注册的 Startup 对象?

      WebApp.Start<Startup>(url);
      

      那么……

      class Startup
          {
              public void Configuration(IAppBuilder app)
              {
                  app.MapSignalR();
              }
          }
      

      这对我们来说很好用...

      【讨论】:

      • 您好,我有一个用于将数据返回给我的客户端的 Web Api,但也将有一个 Windows 服务来处理长时间运行的任务。那么我是否需要使用 SignalR 服务器?一个用于我的 web api,一个用于我的 Windows 服务?如果是这样,我该如何在 javascript 客户端上处理它?谢谢
      • 嗨,我想说这确实是一个全新的问题,与上面提出的问题完全不同 - 请随时提出新问题!
      • @No1Lives4Ever 真的对你有帮助吗?我有同样的问题,这对我没有帮助。我在单独的文件中创建了启动。我需要移动这个程序吗?
      猜你喜欢
      • 2013-07-14
      • 2015-12-15
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      相关资源
      最近更新 更多