IIS 对websocket长连接数有限制吗?

问题描述

我写了个网站,.net的,一个页面用到了Websocket,实时聊天那种,部署到IIS运行时,只要打开2个这个页面,然后整个网站就都锁死了,新打开的页面都一直在加载中,只要把那2个已经打开的页面关闭,新页面立刻就刷出来了!把vs附加到IIS进程调试时,打开第三个新页面,程序根本就不会进入我的代码,也就是请求被IIS截住了!如果把这个页面中的长连接部分去除,那么无论打开多少这个页面,都不会导致整个站点锁定!在vs2013中调试时没有这个情况!

解决方案

解决方案二:
非服务器版本的windows有10个入站限制
解决方案三:
不知道你所谓的websocket具体是什么。websocket本身不走IIS,它跟http长连接最大的不同,就是它根本不坑IIS、也不坑浏览器端http并发数。它单独走tcp协议去访问websocket服务器。同时websocket信令也比传统的基于http的信令要小数倍。你所谓的“部署到IIS运行时”,我不知道你部署了什么网站。你应该仔细看看你的代码,看看有没有逻辑设计bug。比如说使用开源.net类库Fleck的websocket,就是它的网页这样几行代码,你用一个console程序执行这几行代码,然后就能用几百个网页客户端去测试它。并不需要IIS。那么你使用IIS的服务器程序,我不知道你是不是写得过于复杂了。反而“死掉”了。
解决方案四:
你应该检查一下(调试一下)你的http通讯,看看有没有异常巨大的消息。在websocket通讯时,你的http通讯应该是“不动的”。asp.net之前应该是弄了一个“伪websocket”,也就是说它会自动地使用http长连接来模拟websocket,而不是真正websocket。不知道你是否使用了过时的、伪websocket功能的asp.net。
解决方案五:
现在就确定,用windowsservice方式来发布websocket服务器端,用console方式来测试它。不要使用asp.net,不要使用IIS。这样你能在将来省许多事情。因为websocket服务器端编程跟asp.net网页编程,一点毛关系都没有。websocket服务端设计开发,根本不应该作为asp.net平台下的开发计划。asp.net应该用来承载前端网页,以http方式下载各种资源文件到浏览器。而不应该承载websocket服务器端。如果你曾经通过asp.netSignalR尝了尝鲜,那么现在应该把它从asp.net中彻底剥离出来。Websocket服务,将来是一个“大型消息服务系统”,通讯的是纯粹的自定义业务数据。而asp.net不过是做网页的。
解决方案六:
引用2楼sp1234的回复:

不知道你所谓的websocket具体是什么。websocket本身不走IIS,它跟http长连接最大的不同,就是它根本不坑IIS、也不坑浏览器端http并发数。它单独走tcp协议去访问websocket服务器。同时websocket信令也比传统的基于http的信令要小数倍。你所谓的“部署到IIS运行时”,我不知道你部署了什么网站。你应该仔细看看你的代码,看看有没有逻辑设计bug。比如说使用开源.net类库Fleck的websocket,就是它的网页这样几行代码,你用一个console程序执行这几行代码,然后就能用几百个网页客户端去测试它。并不需要IIS。那么你使用IIS的服务器程序,我不知道你是不是写得过于复杂了。反而“死掉”了。

我就用的.net里自带的Websocket功能,httphandler中判断请求是不是WebSocket,然后建立长连接if(context.IsWebSocketRequest){....context.AcceptWebSocketRequest(skt.ProcessChat);......publicasyncTaskProcessChat(AspNetWebSocketContextcontext){关键是,它在vs里调试的时候一点问题都没有啊
解决方案七:
现在我放到阿里云服务器上又出新问题了,浏览器里报错ebSocketconnectionto'ws://m1.imilu.la/hd/groupsocket?GID=4'failed:ErrorduringWebSockethandshake:Unexpectedresponsecode:200一个连接都不能建立
解决方案八:
看了sp1234的回复,我弄了个纯粹只有一个html页面,一个ashx页面的项目,就是避免上面说的本身代码有问题代码完全粘贴自http://www.cnblogs.com/langu/archive/2013/12/22/3485676.html,无改动发现还是一样,只要放到IIS,打开第一个页面,能建立长连接,再打开第二个页面,不能建立长连接,再打开第三个页面(页面打不开)...!
解决方案九:
问题解决了吗?我也遇到和你一样的问题了,Websocket部署在iis里面,多访问几次就网站锁死了。

时间: 2024-11-02 23:33:17

IIS 对websocket长连接数有限制吗?的相关文章

Windows 8 Store Apps学习(63) 通信: WebSocket

介绍 重新想象 Windows 8 Store Apps 之 通信 Socket - 与 WebSocket 服务端做 Text 通信 Socket - 与 WebSocket 服务端做 Stream(Binary) 通信 示例 WebSocket 的服务端 WebServer/WebSocketServer.ashx.cs /* * WebSocket 协议的服务端 * * 需要在 iis 启用 WebSocket 协议:控制面板 -> 程序和功能 -> 启用或关闭 Windows 功能 -

TCP的长连接和短连接

TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议. 长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持.  短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此

tomcat8在哪里配置websocket的参数

问题描述 tomcat8在哪里配置websocket的参数 tomcat8在哪里配置websocket的参数,在哪个文件中呢,我要配置org.apache.tomcat.websocket.executorMaxSize这个参数,来修改websocket的最大连接数.另外有没有人测试过tomcat能够支持的websocket最大连接数是多少,谢谢 解决方案 http://m.blog.csdn.net/blog/strong815/24465691

长连接和短连接

1.TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接 时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的 经典的三次握手示意图: 经典的四次握手关闭图: 2. TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接.client向server 发送消息,s

重新想象 Windows 8 Store Apps (63) - 通信: WebSocket

原文:重新想象 Windows 8 Store Apps (63) - 通信: WebSocket [源码下载] 重新想象 Windows 8 Store Apps (63) - 通信: WebSocket 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 通信 Socket - 与 WebSocket 服务端做 Text 通信 Socket - 与 WebSocket 服务端做 Stream(Binary) 通信 示例WebSocket 的服务端WebServe

HTTP长连接和短连接(转)

1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致.TCP有可靠,面向连接的特点.   2. 如何理解HTTP协议是无状态的 HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态.也就是说,打开一

WebSocket 开发指南

春节假期看了一下 websocket, 做了一篇笔记, 原文链接: https://oolap.com/websocket     WebSocket 由来已久, 常用于 "服务器推" 场景.最近开始学习 WebSocket (从 tomcat examples 开始), 本文的主要目的是做学习笔记, 同时记录一份开发指南.     本文示例代码见: https://github.com/hanyong/exercise/tree/websocket HTTP 协议简述 我们先来看看

IIS 浏览aspx页面出现无法显示XML页的解决方法分享_实用技巧

 使用IIS调试.aspx程序时IE提示以下错误:                无法显示 XML 页.         使用 样式表无法查看 XML 输入.请更正错误然后单击 刷新按钮,或以后重试.         处理资源 'http://localhost/ 时出错.第 1 行,位置: 2          <%@ Page Language="C#" AutoEventWireup="true"   CodeFile="Main.aspx.c

巧用net命令解决XP中打印连接数问题_DOS/BAT

这是我第一篇在<网管员世界>投稿的文章,第几期刊登的我给忘了.记得好像有几十块钱的稿费吧,呵呵没事就多投投弄点!!这种方法只是一种缓解,不过在小的环境中还是很有效果.      技巧:巧用net命令解决XP中打印连接数问题,XP专业版所带的iis默认10个连接数虽然可以用微软的MtaEdt22改变使之响应更大的连接数,但在打印连接方面却始终没有突破10的限制,用net config server命令可以查看登录用户的上限是10,空闲会话时间默认为15分钟.利用/autodisconnect 时