簡體   English   中英

池上的ASP.NET Websocket行為回收

[英]ASP.NET Websocket behavior on Pool recycle

我目前正在評估使用asp.net websockets來連接數千個客戶端,這些客戶端幾乎全天候都會與應用程序保持連接,除非服務器脫機進行修補等。一般來說,系統的期望是websockets不應該不必要地斷開連接,客戶端基本上保持連接並每隔幾分鍾ping一次服務器。

當我在研究新架構的asp.net websocket可行性時,我遇到了另一個stackoverflow帖子: 當有一個打開的ASP.NET 4.5 Websocket時,IIS應用程序池無法回收,這似乎暗示IIS不會回收池是一個活躍的websocket連接。 這是設計還是其他人遇到異常? 如果IIS確實在websocket連接處於活動狀態時回收池,那么預期的行為是什么? Http.sys是否保持連接,回收池並恢復事務,就像沒有發生任何事情一樣(從客戶的角度來看)? 我應該為websockets創建一個單獨的應用程序池並禁用它上面的回收嗎?

根據我的經驗,舊工作進程上的WebSockets沒有轉換到新的工作進程。 我觀察到舊的WebSockets被置於非Open狀態,由你的代碼檢查並停止維護這些線程 - 我的應用程序通過WebSockets為客戶端創建心跳,如果心跳失敗,我需要盡快關閉(已經關閉)WebSocket上下文,以便舊的工作進程可以完全卸載並死掉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM