asp.net - SignalR - 从 WPF 应用程序调用集线器非常慢

标签 asp.net wpf http signalr

我有一个 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/

相关文章:

asp.net - 无效的对象名称 'ASPState.dbo.ASPStateTempApplications' - 重命名 ASPState 数据库后出现异常

c# - 如何为 WPF 饼图中的饼图切片设置默认颜色

c# - 有没有办法覆盖列表框中所有项目的颜色?

c# - 在 WPF 中使用另一个组合框所选项目填充组合框

javascript - 如何以编程方式复制在 Chrome 开发者工具中找到的请求?

asp.net - "The requested resource does not support http method ' 发布'

c# - Quartz Scheduler (.Net) - 为什么在运行内置 'RescheduleJob' 方法后立即触发作业?

c# - 以编程方式从基于 Claims auth 的 SharePoint 2010 站点下载文件

json - Observable 和 http json Angular 的问题

javascript - asp.net mvc serialize() 在 Controller 的模型中返回空