method could not be resolved

场景:

Javascript客户端不生成代理,调用服务端方法。

按照官网文档的用法:

contosoChatHubProxy.invoke('newContosoChatMessage', { UserName: userName, Message: message}).done(function () {
console.log ('Invocation of NewContosoChatMessage succeeded');
}).fail(function (error) {
console.log('Invocation of NewContosoChatMessage failed. Error: ' + error);
});

但是实际调用时,却抛出以下异常:

'SendMessage' method could not be resolved.
Potential candidates are: SendMessage(toFinanceId:String, toCustomerName:String, message:String):Task

原因:调用服务端方法时,传递的参数类型不对。

这里服务端方法定义的是三个参数,而我传递的是包含这三个参数的对象,因此不匹配。

参考:.NET Client unable to call hub methods with array parameters

当SignalR连接超过2个时,网站请求被全部阻塞

前一段时间在网站中利用 SignalR 增加了实时聊天功能,最初的开发过程一切正常,但是自从更换新电脑后,出现一个现象:

打开网站,第一批请求都完毕后,后续所有的请求都变成 pending 状态,服务器一直没有进行响应。

查看 IIS 工作进程的当前请求,可以看到有3个 SignalR 的连接,并没有其他正在被处理的请求。

我尝试在代码中把 SignalR 部分注释掉,然后之前所有被阻塞的请求突然活了过来。

于是猜测可能是使用 SignalR 不当造成的,但是相同的代码在之前的电脑上则没有该问题。

这两台电脑的一个不同之处是,旧电脑的 OS 是 Windows 10 Professional,新电脑的 OS 是 Windows 10 Home。

于是在关键词中新增关键词 Windows 10 Home,再次Google,很快找到了答案:

不同的 Windows 版本, IIS 有并发连接数限制并且各个版本不同。

Windows 10 Home : 3
Windows 10 Professional : 10

需要说明的是,该限制取决于Windows版本而不是IIS版本。

Windows 版本可以划分为 Client 版本和 Server 版本,Client 版本有限制,如 Windows 7、Windows 8、Windows Vista;但是 Server 版本没有限制,如 Server 2003、Server 2008、Server 2012。

经过验证, 装有 Windows 10 Professional 电脑的 IIS 并发请求数量不能超过9个。

总结排错过程:

  1. 排查代码;
  2. 两台电脑的操作系统的区别;

参考: Windows 8 / IIS 8 Concurrent Requests Limit

ASP.NET SignalR Troubeshooting的更多相关文章

  1. ASP.NET SignalR入门

    前言 之前在培训ASP.NET WebAPI的时候有提过SignalR这个技术,但当时只是讲了是用来做什么的,并没有多说.因为自己也是画图找资料的时候见到的.后来当一直关注的前端大神贤心发布LayIM ...

  2. ASP.NET SignalR 高可用设计

    在 One ASP.NET 的架构图中,微软将 WebAPI 和 SignalR 归类到 Services 类型与 MVC.Web Forms 同列为一等公民,未来的 ASP.NET 5 尽管还在be ...

  3. csharp:ASP.NET SignalR

    http://signalr.net/ https://github.com/SignalR/SignalR http://www.asp.net/signalr http://www.cnblogs ...

  4. ASP.NET SignalR

    何为ASP.NET SignalR,有什么用 ASP.NET SignalR是一个ASP.NET库,是为了实现实时web通信而创造的,能让服务器与客户端实现即时通信,而不需要服务器等待接收到客户端请求 ...

  5. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室 实战系列

    ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(零) 前言  http://www.cnblogs.com/panzi/p/5742089.html ASP.NET S ...

  6. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十二) 代码重构使用反射工厂解耦(一)缓存切换

    前言 上一篇中,我们用了反射工厂来解除BLL和UI层耦合的问题.当然那是最简单的解决方法,再复杂一点的程序可能思路相同,但是在编程细节中需要考虑的就更多了,比如今天我在重构过程中遇到的问题.也是接下来 ...

  7. [Asp.net 开发系列之SignalR篇]专题一:Asp.net SignalR快速入门

    一.前言 之前半年时间感觉自己有点浮躁,导致停顿了半年多的时间没有更新博客,今天重新开始记录博文,希望自己可以找回初心,继续沉淀.由于最近做的项目中用到SignalR技术,所以打算总结下Asp.net ...

  8. 《ASP.NET SignalR系列》第五课 在MVC中使用SignalR

    接着上一篇:<ASP.NET SignalR系列>第四课 SignalR自托管(不用IIS) 一.概述 本教程主要阐释了如何在MVC下使用ASP.NET SignalR. 添加Signal ...

  9. 《ASP.NET SignalR系列》第四课 SignalR自托管(不用IIS)

    从现在开始相关文章请到: http://lko2o.com/moon 接着上一篇:<ASP.NET SignalR系列>第三课 SignalR的支持平台 一.概述 SignalR常常依托于 ...

随机推荐

  1. vue引用公用的头部和尾部文件。

    我创建了一个header.vue和fotter.vue,用来做于网站的头部和尾部,每个页面都需要引用这两个,我以组件的方式,来引用这样只需要添加注册的组件就可以了. 第一步.在components文件 ...

  2. 校园网ipv6连接问题

    没有ipv6的信号:只需要进入网络适配器里面先禁用再启用即可.

  3. CXF wsdl2java (转载)

    2011-03-28 14:27 9735人阅读 评论(2) 收藏 举报 servicewebserviceinterfacejavastringserver CXF wsdl2Java 一.  简介 ...

  4. 2017/2/10:Manven简介与项目管理(入门)

    1.Maven工程的创建 2.使用Manven manven配置文件主要集中在 http://m.blog.csdn.net/article/details?id=50316383

  5. MVVM Light 笔记

    4.关于子视图, MVVMLight Using Two Views:http://www.codeproject.com/Articles/323187/MVVMLight-Using-Two-Vi ...

  6. mysql之多表查询和pymysql模块

    一 多表查找方法 1 交叉连接:不使用任何的判断条件,生成笛卡尔积.第一个表的行数乘以第二个表的行数就等于笛卡尔积结果集的行数. mysql> select * from student,cla ...

  7. Hadoop3集群搭建之——虚拟机安装

    现在做的项目是个大数据报表系统,刚开始的时候,负责做Java方面的接口(项目前端为独立的Java web 系统,后端也是Java web的系统,前后端系统通过接口传输数据),后来领导觉得大家需要多元化 ...

  8. 2018.11.16 bzoj4827: [Hnoi2017]礼物(ntt)

    传送门 nttnttntt 入门题. 考虑展开要求的式子∑i=0n−1(xi−yi−c)2\sum_{i=0}^{n-1}(x_i-y_i-c)^2∑i=0n−1​(xi​−yi​−c)2 => ...

  9. vue 开发系列(五) 调用原生API

    概要 我们在开发手机端程序的时候了,我们经常需要使用到拍照,二维码的功能.数字天堂公司提供了大量的原生API支持. http://www.html5plus.org/doc/ 实现 1.在hbuild ...

  10. this指针和const成员函数

    1.this指针 1)this指针是成员函数的隐式参数,成员函数通过this指针来访问调用它自己的那个对象,成员函数对各成员的访问均通过this进行 2)当某个对象调用它的成员函数时,编译器会把这个对 ...