我在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服务以管理员身份运行?
谢谢!
答案 0 :(得分:15)
我遇到了同样的问题,而我的解决方案就是将程序集Microsoft.Owin.Host.HttpListener
添加到我的项目中。
答案 1 :(得分:13)
您是否尝试过使用已注册的Startup对象?
WebApp.Start<Startup>(url);
...然后
class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
这对我们来说很好......