【问题标题】:Signalr server method is not calling using objHub.serverSignalr 服务器方法未使用 objHub.server 调用
【发布时间】:2017-08-20 16:22:37
【问题描述】:

我已经在谷歌上搜索过,但没有找到任何解决方案。

我的hub的方法是这样的

public string Test(string hello)
{
    return hello;
}
public override System.Threading.Tasks.Task OnConnected()
{
    return base.OnConnected();
}

我的客户端是

var objHub = $.connection.myHub;
$.connection.hub.start().done(function () {
    objHub.server.test('test');
}).fail(function () {
    /.....
})

OnConnected 正在完美调用,但 objHub.server.test 没有调用。

即使我已经在控制台中检查了映射到集线器对象的服务器端方法,这里所有的服务器方法都注册到集线器对象

为什么我的服务器端方法没有调用?

更新

现在我看到了什么

服务器正在请求

http://localhost:83/signalr/connect?transport=longPolling&clientProtocol=1.5&connectionToken=MUM0NzA5MDI3QTEyRjM5RDM4QjEzNDhGRTFEMjJGNzI3QTcyQTRDM0ZDOTE3MTRCRUYwQkVCOUI3OEQ3Q0MxREY1NzNEQkUzQjAxM0QzMzlCRDIzQUY0OUJDNThENDVCMDUzQ0RENEMwQTUzNkNFMzEyNDY2QTkyMjExRkE4REVDMUZGRUE2RTdFNTNDRkM2NDg5NjEzMUIyMzQzNDI4Njk3RjRBNTdEMDlEQ0U1MUJGQ0I4RjE4Njg3NjU5NTBFRURGQTZCNzBGMzUwRjA0MzdFOERENkQ1NTFEQ0JCNEJDN0U3NDUyNA%3D%3D&connectionData=%5B%5D

得到这个错误

Method not found: System.Threading.Tasks.Task 1<Microsoft.Owin.IFormCollection> Microsoft.Owin.OwinRequest.ReadFormAsync()

谢谢

【问题讨论】:

  • 尝试添加类似setTimeout(function () { $.connection.hub.start().done... }, 5000);的超时
  • 已经试过了
  • 执行进入事件是否失败?
  • 现在我看到这个错误,而信号器连接请求Method not found: System.Threading.Tasks.Task1<Microsoft.Owin.IFormCollection> Microsoft.Owin.OwinRequest.ReadFormAsync()
  • 你更新包了吗?显然您使用的版本不包含此方法。 Microsoft.Owin 在项目引用中吗?如果是,请尝试删除并重新添加。

标签: javascript signalr signalr-hub


【解决方案1】:

是的,当我恢复到 Microsoft.AspNet.SignalR2.2.0 时,我更新了我的 Microsoft.AspNet.SignalR2.2.2,然后它就可以工作了............

【讨论】:

    猜你喜欢
    • 2020-10-16
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多