主頁 > .NET開發 > IIS 對websocket長連接數有限制嗎?

IIS 對websocket長連接數有限制嗎?

2020-09-17 03:30:21 .NET開發

我寫了個網站,.net的,一個頁面用到了Websocket,實時聊天那種,部署到IIS運行時,只要打開2個這個頁面,然后整個網站就都鎖死了,新打開的頁面都一直在加載中,只要把那2個已經打開的頁面關閉,新頁面立刻就刷出來了!把vs附加到IIS行程除錯時,打開第三個新頁面,程式根本就不會進入我的代碼,也就是請求被IIS截住了!
如果把這個頁面中的長連接部分去除,那么無論打開多少這個頁面,都不會導致整個站點鎖定!
在vs2013中除錯時沒有這個情況!

uj5u.com熱心網友回復:

非服務器版本的windows有10個入站限制

uj5u.com熱心網友回復:

不知道你所謂的 websocket 具體是什么。

websocket 本身不走 IIS,它跟 http 長連接最大的不同,就是它根本不坑 IIS、也不坑瀏覽器端 http 并發數。它單獨走 tcp 協議去訪問websocket 服務器。同時 websocket 信令也比傳統的基于 http 的信令要小數倍。

你所謂的“部署到IIS運行時”,我不知道你部署了什么網站。你應該仔細看看你的代碼,看看有沒有邏輯設計 bug。

比如說使用開源 .net 類別庫 Fleck 的 websocket,就是它的網頁 https://github.com/statianzo/Fleck 這樣幾行代碼,你用一個 console 程式執行這幾行代碼,然后就能用幾百個網頁客戶端去測驗它。并不需要IIS。

那么你使用 IIS 的服務器程式,我不知道你是不是寫得過于復雜了。反而“死掉”了。

uj5u.com熱心網友回復:

你應該檢查一下(除錯一下)你的 http 通訊,看看有沒有例外巨大的訊息。在websocket 通訊時,你的 http 通訊應該是“不動的”。

asp.net  之前應該是弄了一個“偽websocket”,也就是說它會自動地使用 http 長連接來模擬 websocket,而不是真正 websocket。不知道你是否使用了過時的、偽 websocket 功能的 asp.net。

uj5u.com熱心網友回復:

現在就確定,用 windows service 方式來發布 websocket 服務器端,用console 方式來測驗它。不要使用 asp.net,不要使用 IIS。

這樣你能在將來省許多事情。因為 websocket 服務器端編程跟 asp.net 網頁編程,一點毛關系都沒有。

websocket 服務端設計開發,根本不應該作為 asp.net 平臺下的開發計劃。 asp.net 應該用來承載前端網頁,以 http 方式下載各種資源檔案到瀏覽器。而不應該承載 websocket 服務器端。如果你曾經通過 asp.net SignalR 嘗了嘗鮮,那么現在應該把它從 asp.net 中徹底剝離出來。

Websocket 服務,將來是一個“大型訊息服務系統”,通訊的是純粹的自定義業務資料。而 asp.net 不過是做網頁的。

uj5u.com熱心網友回復:

參考 2 樓 sp1234 的回復:
不知道你所謂的 websocket 具體是什么。

websocket 本身不走 IIS,它跟 http 長連接最大的不同,就是它根本不坑 IIS、也不坑瀏覽器端 http 并發數。它單獨走 tcp 協議去訪問websocket 服務器。同時 websocket 信令也比傳統的基于 http 的信令要小數倍。

你所謂的“部署到IIS運行時”,我不知道你部署了什么網站。你應該仔細看看你的代碼,看看有沒有邏輯設計 bug。

比如說使用開源 .net 類別庫 Fleck 的 websocket,就是它的網頁 https://github.com/statianzo/Fleck 這樣幾行代碼,你用一個 console 程式執行這幾行代碼,然后就能用幾百個網頁客戶端去測驗它。并不需要IIS。

那么你使用 IIS 的服務器程式,我不知道你是不是寫得過于復雜了。反而“死掉”了。


我就用的.net里自帶的Websocket功能,httphandler 中判斷請求是不是WebSocket,然后建立長連接
if (context.IsWebSocketRequest)
        {
....

 context.AcceptWebSocketRequest(skt.ProcessChat);  

......

    public async Task ProcessChat(AspNetWebSocketContext context)
    {

關鍵是,它在vs里除錯的時候一點問題都沒有啊

uj5u.com熱心網友回復:

現在我放到阿里云服務器上又出新問題了,瀏覽器里報錯
ebSocket connection to 'ws://m1.imilu.la/hd/groupsocket?GID=4' failed: Error during WebSocket handshake: Unexpected response code: 200

一個連接都不能建立

uj5u.com熱心網友回復:

看了sp1234的回復,我弄了個純粹只有一個html頁面,一個ashx頁面的專案,就是避免上面說的本身代碼有問題
代碼完全粘貼自 http://www.cnblogs.com/langu/archive/2013/12/22/3485676.html,無改動

發現還是一樣,只要放到IIS, 打開第一個頁面,能建立長連接,再打開第二個頁面,不能建立長連接,再打開第三個頁面(頁面打不開)...!

uj5u.com熱心網友回復:

問題解決了嗎? 我也遇到和你一樣的問題了,Websocket部署在iis里面,多訪問幾次就網站鎖死了。

uj5u.com熱心網友回復:

參考 3 樓 sp1234 的回復:
你應該檢查一下(除錯一下)你的 http 通訊,看看有沒有例外巨大的訊息。在websocket 通訊時,你的 http 通訊應該是“不動的”。

asp.net  之前應該是弄了一個“偽websocket”,也就是說它會自動地使用 http 長連接來模擬 websocket,而不是真正 websocket。不知道你是否使用了過時的、偽 websocket 功能的 asp.net。

你是我在csdn里面看到的最活躍的用戶。。。。

uj5u.com熱心網友回復:

.NET下的websockt 需要IIS8以上才行!  IE瀏覽器默認連接數8個左右,其他瀏覽器無限制。我做的基于websocket云客服已經上線。有問題,可以交流!

uj5u.com熱心網友回復:

樓豬問題解決了嗎?我也遇到這個問題……當前建立鏈接頁多重繪個5、6次……iis的cpu占用率就直線上升打不開頁面了……

uj5u.com熱心網友回復:

參考 9 樓 wq8438 的回復:
Quote: 參考 3 樓 sp1234 的回復:

你應該檢查一下(除錯一下)你的 http 通訊,看看有沒有例外巨大的訊息。在websocket 通訊時,你的 http 通訊應該是“不動的”。

asp.net  之前應該是弄了一個“偽websocket”,也就是說它會自動地使用 http 長連接來模擬 websocket,而不是真正 websocket。不知道你是否使用了過時的、偽 websocket 功能的 asp.net。

你是我在csdn里面看到的最活躍的用戶。。。。


也是我見到 最傻b的 各種花式回答。。

uj5u.com熱心網友回復:

iis里的websocket的確有很多問題  基本上 也沒有人實際應用...

而且寫到什么網頁里 我也沒見過有人這么干過.

不會寫winservice 最起碼的 你寫一個exe 也行啊..

網上一大堆類別庫 幾句話就搞定3個事件...

或者找一個tcp服務的dll  在看下websocket協議  兼容一下... 這種東西很多的.

我覺得你先從這地方下手 比較合適. 而不是去研究什么iis上的websocket..

uj5u.com熱心網友回復:

參考 13 樓 by_封愛 的回復:
iis里的websocket的確有很多問題  基本上 也沒有人實際應用...

而且寫到什么網頁里 我也沒見過有人這么干過.

不會寫winservice 最起碼的 你寫一個exe 也行啊..

網上一大堆類別庫 幾句話就搞定3個事件...

或者找一個tcp服務的dll  在看下websocket協議  兼容一下... 這種東西很多的.

我覺得你先從這地方下手 比較合適. 而不是去研究什么iis上的websocket..


以前單位的 技術經理 在 socket 上非常弱 一直都沒有突破 就成了他內心的一塊陰影了  只要一到開發關于通訊的功能他總想 繞開socket 尋找其他方式 包括 websocket 之類的  那會 真是笑死我了.........  后來我離職了

uj5u.com熱心網友回復:

別非要強迫癥去去管那個IIS的發布,我們就是直接一個exe就搞定了。
SP大神說的方向基本沒差的,web開發和websocket協議兩者沒啥密切關系,不需要iis  websocket一樣運行。 

uj5u.com熱心網友回復:

發現是老貼:(

uj5u.com熱心網友回復:

參考 12 樓 ajingmiao 的回復:
Quote: 參考 9 樓 wq8438 的回復:

Quote: 參考 3 樓 sp1234 的回復:

你應該檢查一下(除錯一下)你的 http 通訊,看看有沒有例外巨大的訊息。在websocket 通訊時,你的 http 通訊應該是“不動的”。

asp.net  之前應該是弄了一個“偽websocket”,也就是說它會自動地使用 http 長連接來模擬 websocket,而不是真正 websocket。不知道你是否使用了過時的、偽 websocket 功能的 asp.net。

你是我在csdn里面看到的最活躍的用戶。。。。


也是我見到 最傻b的 各種花式回答。。


也是我見過的,只會嘴炮裝B,從不解決問題的人

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/62000.html

標籤:C#

上一篇:C#怎么呼叫matlab的.m檔案,想要詳細操作步驟,本人小白,網上的資料寫的太籠統,實在看不懂,不會操作

下一篇:求解決

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more