有很多教程可以在控制台应用程序或后台服务中设置SignalR selfhost。
e.g。 https://docs.microsoft.com/en-us/aspnet/signalr/overview/deployment/tutorial-signalr-self-host
我在弄清楚如何从winforms中做到这一点时遇到了很多麻烦?这里有一个类似的问题
how to setup a C# winforms application to host SignalR Hubs?
但他们已经使用控制台应用程序回答了...所以这里是在控制台中运行的代码:
string url = @"http://127.0.0.1:8585/";
using (WebApp.Start<Startup>(url))
{
Console.WriteLine(string.Format("Server running at {0}", url));
Console.ReadLine();
}
我知道我可能需要启动一个单独的线程,但它将如何继续运行服务器?我尝试在加载时使用相同的。
答案 0 :(得分:2)
using
块意味着将在Dispose
语句创建的实例上执行WebApp.Start<Startup>(url)
方法。
using
)之前,控制台应用程序Console.ReadLine();
中的块未完成。
在wpf using
块中毫不拖延地完成。尝试WebApp.Start<Startup>(url);
(并在适当的时候停止它,如应用程序退出)