我有一个 ASP.NET WebForms 应用程序,它有许多 SignalR 中心,将从 WPF 应用程序调用。最初我通过控制台应用程序而不是 WPF 应用程序对此进行了测试,只是为了证明这个概念。这太棒了,而且是瞬间的。
最近我开始调用 WPF 应用程序中的集线器,使用完全相同的代码,但我遇到了很多速度问题(在本地和远程调用时)- connection.Start().Wait( ) 通话最多可能需要 30 秒!
在 WPF 中连接到 http url 可能很慢,是否有任何明确的原因?我的调用代码如下。我曾尝试在单独的线程中执行调用,但这没有帮助。
private static void Execute(string hubName, List<KeyValuePair<string,object[]>> items)
{
FBDBDataContext dc = new FBDBDataContext();
string url = ConfigurationManager.AppSettings["WebURL"];
var connection = new HubConnection(url);
IHubProxy myHub = connection.CreateHubProxy(hubName);
connection.Start().Wait(); // not sure if you need this if you are simply posting to the hub
foreach (var kvp in items)
myHub.Invoke(kvp.Key, kvp.Value);
}
最佳答案
您不应该在每次希望与服务器通信时都创建一个新连接。在程序开始时创建一次并重复使用。
关于asp.net - SignalR - 从 WPF 应用程序调用集线器非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21091665/