|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,173
|
||||||||||||||||
.NET 6 Ошибка подключения к серверу WebSocket12.06.2023, 14:35. Показов 2084. Ответов 14
При большом количестве подключений к серверу я получаю ошибку на стороне клиента Unable to connect to the remote server Невозможно подключиться к удаленному серверу При запуске количество ошибок всегда разное от 0 до 100 и т.п. При этом проект с сервером при нагрузке в 1000 подключений потребляет на 10мб больше озу, у клиентского приложения нагрузка полностью отсутствует. Подскажите как можно стабилизировать работу с сокетами. Код сервера Program.cs
0
|
||||||||||||||||
| 12.06.2023, 14:35 | |
|
Ответы с готовыми решениями:
14
Реализация клиента для подключения к серверу на WebSocket WebSocket. Ошибка при создании подключения Ошибка подключения к серверу |
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 12.06.2023, 23:37 | |
|
Причину надо искать в InnerException
0
|
|
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,173
|
|||||||
| 12.06.2023, 23:47 [ТС] | |||||||
|
nicolas2008, мне кажется что проблема все таки в настройке кода у проекта asp net core к которому я подключаюсь.
на стороне клиента при подключение в 1000 потоков ошибка вызывается при подключение
Сообщение из StackTrace Unable to connect to the remote server at System.Net.WebSockets.WebSocketHandle.Co nnectAsync(Uri uri, CancellationToken cancellationToken, ClientWebSocketOptions options) at System.Net.WebSockets.ClientWebSocket.Co nnectAsyncCore(Uri uri, CancellationToken cancellationToken) at Program.<>c__DisplayClass0_0.<<<Main>$>g __Socket|0>d.MoveNext() in D:\Project\Visul studio\Delete2\Delete2\Program.cs:line 42
0
|
|||||||
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 12.06.2023, 23:51 | |
|
xellan24rus, Сделайте var message = ex.ToString(). На стороне клиента конечно.
0
|
|
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,173
|
||
| 12.06.2023, 23:57 [ТС] | ||
|
Ошибка подключения System.Net.WebSockets.WebSocketException (0x80004005): Unable to connect to the remote server ---> System.Net.Http.HttpRequestException: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. (localhost:5001) ---> System.Net.Sockets.SocketException (10061): Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. at System.Net.Sockets.Socket.AwaitableSocke tAsyncEventArgs.ThrowException(SocketErr or error, CancellationToken cancellationToken) at System.Net.Sockets.Socket.AwaitableSocke tAsyncEventArgs.System.Threading.Tasks.S ources.IValueTaskSource.GetResult(Int16 token) at System.Net.Sockets.Socket.<ConnectAsync> g__WaitForConnectWithCancellation|277_0( AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.Conne ctToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.HttpConnectionPool.Conne ctToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.Conne ctAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.Creat eHttp11ConnectionAsync(HttpRequestMessag e request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.AddHt tp11ConnectionAsync(HttpRequestMessage request) at System.Threading.Tasks.TaskCompletionSou rceWithCancellation`1.WaitWithCancellati onAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.GetHt tp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendW ithVersionDetectionAndRetryAsync(HttpReq uestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.DiagnosticsHandler.SendA syncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsyn c(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.WebSockets.WebSocketHandle.Co nnectAsync(Uri uri, CancellationToken cancellationToken, ClientWebSocketOptions options) at System.Net.WebSockets.WebSocketHandle.Co nnectAsync(Uri uri, CancellationToken cancellationToken, ClientWebSocketOptions options) at System.Net.WebSockets.ClientWebSocket.Co nnectAsyncCore(Uri uri, CancellationToken cancellationToken) at Program.<>c__DisplayClass0_0.<<<Main>$>g __Socket|0>d.MoveNext() in D:\Project\Visul studio\Delete2\Delete2\Program.cs:line 43 Добавлено через 1 минуту Как и написал выше проблема кроется на стороне серверного приложения. Код в вопросе весь написал. Весь день бьюсь над этим вопросом Добавлено через 1 минуту В 500 потоков подключается успешно, без ошибок
0
|
||
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 13.06.2023, 01:04 | |
|
xellan24rus, какой результат если сделать паузу между подключениями?
0
|
|
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,173
|
|
| 13.06.2023, 01:20 [ТС] | |
|
nicolas2008, ошибки все равно есть, поставил задержку между подключениями 1 сек
Также запустил сканер подключений, на скриншоте видно что есть успешные подключения и сброшенные. TIME_WAIT указывает, что локальная конечная точка (эта сторона) закрыла соединение. https://skr.sh/sKIYoc72F5m?a Добавлено через 55 секунд Также сравнил строки на дубликаты, повторных подключений к портам нет, то есть каждый раз при подключение для клиента берется новый порт. Добавлено через 9 минут Вот что мне удалось найти в гугле, для статистки посчитал количество успешных подключений на сервере, число 632 из 1000 С какой то статьи текст Из-за того, как работает TCP/IP, соединения не могут быть закрыты сразу. Пакеты могут выйти из строя или быть переданы повторно после того, как соединение было закрыто. CLOSE_WAIT указывает, что удаленная конечная точка (другая сторона соединения) закрыла соединение. TIME_WAIT указывает, что локальная конечная точка (эта сторона) закрыла соединение. Соединение поддерживается таким образом, что любые задержанные пакеты могут быть сопоставлены с соединением и обработаны соответствующим образом. Соединения будут удалены
0
|
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 13.06.2023, 01:47 | |
|
xellan24rus, видать какие то системные лимиты... было подобное в реальном веб приложении. количество подключений не меряли, но симптомы похожие. И в SignalR и в gRPC Web... Пока ничего умнее не придумали чем повторять попытки подключения.
1
|
|
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,173
|
|
| 13.06.2023, 02:02 [ТС] | |
|
nicolas2008, я тоже склоняюсь к тому что это какие то системные лимиты, ограничения. Так как поиск вопроса я нигде не находил каких то настроек кода, чтобы оптимизировать сокеты, касательно SignalR с примерами от Майкрософт тоже нет каких то настроек тонких.
Однако я отключил в серверном приложение UseHttpsRedirection и количество подключений выросло, хотя ошибки всё равно есть. Вывод сделал только один надо на вдске разместить приложение и попробовать к ней подключиться за раз в 1000 потоков ради интереса, так как в реальном приложение количество одновременных подключений может быть точно больше 1000 Добавлено через 6 минут Может кому то пригодится, общие ошибки подключения
0
|
|
|
14090 / 9308 / 1348
Регистрация: 21.01.2016
Сообщений: 34,959
|
||
| 14.06.2023, 13:10 | ||
|
1
|
||
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
|
| 14.06.2023, 13:43 | |
|
разве проблема не в пулинге?
который надо настраивать на веб сервере на иисе надо включать на серваке возможность работать с кучей подлючений
0
|
|
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,173
|
|||
| 15.06.2023, 02:14 [ТС] | |||
|
Добавлено через 2 минуты Добавлено через 1 минуту Есть статьи или документация на примете где можно узнать про настройку, лимиты для работы с сокетами на сервере? В мсдн то что я находил, там мало информативности в основном базовые примеры только.
0
|
|||
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
|||
| 15.06.2023, 14:21 | |||
|
просто надо протокол включить вдруг поможет да и зачем? если надо уже готовое тестить в боевой обстановке
0
|
|||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,173
|
|
| 15.06.2023, 15:06 [ТС] | |
|
0
|
|
|
14090 / 9308 / 1348
Регистрация: 21.01.2016
Сообщений: 34,959
|
||
| 16.06.2023, 04:23 | ||
|
0
|
||
| 16.06.2023, 04:23 | |
|
Помогаю со студенческими работами здесь
15
Ошибка подключения к серверу 10060 Ошибка подключения к ФТП-серверу Ошибка подключения к SQL серверу Ошибка подключения клиента к серверу Ошибка подключения к прокси-серверу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|