Как исправить ошибку: Удаленный хост принудительно разорвал существующее подключение

Ошибка «Удаленный хост принудительно разорвал существующее подключение» возникает при попытке установить соединение с сервером.

udalennyj-host-prinuditelno-razorval-sushhestvuyushhee-podklyuchenie.jpg

Возможно, сервер при отправке ответного запроса на подтверждение подключения, не может получить обратного отклика от клиента в отведенном промежутке времени и разрывает соединение. Есть несколько решений для устранения этой ошибки, узнаем их подробнее.

Чем вызвана ошибка?

Подключение может быть принудительно разорвано удаленным хостом по следующим причинам.

  1. Приложение использует протоколы защиты транспортного уровня TLS 1.1/1.0, которые вызывают эту ошибку при подключении.
  2. Отключена поддержка криптографии, что делает невозможным использование протокола TLS 1.2. В итоге задействуется только TLS 1.0, из-за которого возникает проблемы.
  3. Используется платформа Entity Framework, в которой отсутствует определенная строка кода.
  4. Платформа «.NET» устарела или отключена. Проблема решается обновлением платформы до последней версии.

Включение поддержки протоколов криптографии

Клиент-серверные приложения не смогут использовать протокол TLS 1.2, если в ОС отключена поддержка криптографии. Для ее включения выполните следующие шаги:

Откройте Редактор реестра командой regedit, запущенной из окна «Выполнить» (Win + R).

komanda-regedit-2.jpg

Перейдите к разделу:

HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv4.0.30319

В правой части окна должен быть параметр SchUseStrongCrypto. Если отсутствует, щелкните правой кнопкой мыши на разделе «v4.0.30319» и выберите Создать – Параметр DWORD (32 бита). Присвойте ему указанное имя.

Двойным щелчком откройте свойства параметра SchUseStrongCrypto и в поле значение установите «1». Сохраните изменения на ОК и выйдите из редактора реестра.

Выполните то действие или запустите приложение, которому требуется удаленное подключение и проверьте, разрывает ли его удаленный хост.

Принудительное включение протокола TLS 1.2

Если приложение настроено для использования TLS 1.1/1.0 вместо 1.2, то при установке им подключения, скорее всего, связь с удаленным хостом будет разорвана. Поэтому для принудительного включения выполните следующие шаги:

Перейдите в корневой каталог web приложения и щелкните правой кнопкой мыши на файл «Global.asax». Выберите «Просмотр кода» из списка.

На странице найдите метод «Application_Start». Добавьте к этому методу следующую строку кода:

Сохраните изменения и проверьте, разрывается ли соединение с удаленным хостом.

Изменение реализации объекта Socket

Если определенная реализация объекта Socket имеет ошибку, это может помешать элементам приложения функционировать должным образом. Поэтому попробуйте его перенастроить:

Проверьте, что есть класс StateObject с «public byte[] buffer = new byte[1024], public Socket socket;».

Вызовите функцию Receive(Socket s), затем следующий код «void ReceiveCallback(IAsyncResult ar)».

Проверьте, сохраняется ли проблема с подключением к удаленному хосту после реализации этого кода.

Добавление кода (только для Entity Framework)

При использовании Entity Framework, ошибка может возникнуть из-за отсутствующей строки кода. Для ее добавления выполните следующие шаги:

Откройте свой файл «.edmx», под ним щелкните на «.context.tt». В файле «.context.cs» добавьте следующую строку:

Обновление NET Framework

Подключение может быть разорвано удаленным хостом из-за повреждения некоторых компонентов платформы «.NET Framework». Для этого загрузите и установите последнюю версию с сайта Майкрософт.

Проверьте, решена ли проблема после завершения установки.

Автор: · 10.11.2016

Вре­мя от вре­ме­ни вот такое окно: “Уда­лён­ный хост при­ну­ди­тель­но разо­рвал суще­ству­ю­щее под­клю­че­ние,” выда­ёт Quik.

Если у вас наблю­да­ют­ся про­бле­мы с обры­ва­ми соеди­не­ния к сер­ве­рам бро­ке­ра, то сле­ду­ем инструк­ции ниже.

Конеч­но, это тан­цы с буб­ном и так быть не долж­но. Я наде­юсь, что опи­сан­ное ниже реше­ние про­бле­мы будет носить исклю­чи­тель­но вре­мен­ный харак­тер.

Удаленный хост принудительно разорвал существующее подключение quik

Подоб­ная “неза­да­ча” воз­ни­ка­ет в слу­чае, когда сер­вер бро­ке­ра не может дождать­ся отве­та от тер­ми­на­ла кли­ен­та и отклю­ча­ет его при­ну­ди­тель­но. За вре­мя воз­ник­но­ве­ния дан­ной про­бле­мы я в бук­валь­ном смыс­ле изна­си­ло­вал сво­е­го про­вай­де­ра (даже двух!), тех­ни­че­скую под­держ­ку раз­ра­бот­чи­ка тер­ми­на­ла Quik и как зако­но­мер­ный итог — при­шёл к тех­ни­че­ской под­держ­ке сво­е­го бро­ке­ра. То есть мы будем гово­рить не о про­бле­мах про­вай­де­ра или раз­ра­бот­ки. Речь пой­дёт имен­но об обры­ве под­клю­че­ния, под кото­ры­ми сле­ду­ет пони­мать сле­ду­ю­щее:

после под­клю­че­ния к сер­ве­рам бро­ке­ра тер­ми­нал Quik без каких-либо настро­ек загру­жа­ет коти­ров­ки и рабо­та­ет исправ­но. После загруз­ки фай­ла кон­фи­гу­ра­ций с настро­ен­ны­ми гра­фи­ка­ми и инди­ка­то­ра­ми,  тер­ми­нал кли­ен­та на несколь­ко секунд зави­са­ет и потом выда­ёт сооб­ще­ние: “Уда­лён­ный хост при­ну­ди­тель­но разо­рвал суще­ству­ю­щее под­клю­че­ние quik.”

Осо­бен­но обид­но, когда такое про­ис­хо­дит при нали­чии пози­ции 🙁

При этом нет воз­мож­но­сти ни закрыть пози­цию, ни пере­ста­вить стоп. Тер­ми­нал зави­са­ет и в дис­пет­че­ре задач Windows появ­ля­ет­ся ста­тус “Не отве­ча­ет.”

Итак, что в таких случаях делать?

Повто­рюсь, опи­сан­ные меры явля­ют­ся опре­де­лён­ным тан­цем с буб­ном. Сей­час очень плот­но обща­юсь с тех­ни­че­ской под­держ­кой сво­е­го бро­ке­ра и наде­юсь, это при­не­сёт свои пло­ды. Для реа­ли­за­ции дан­но­го реше­ния тре­бу­ет­ся, что­бы все акции были раз­не­се­ны по раз­ным заклад­кам, то есть гра­фи­ки Сбер­бан­ка, Газ­про­ма, Алро­сы, Рос­неф­ти, фью­черсы, опци­о­ны и дру­гие инстру­мен­ты долж­ны нахо­дить­ся на отдель­ных заклад­ках.

Шаг 0. Настройка соединения

Отклю­ча­ем авто­ма­ти­че­ское вос­ста­нов­ле­ние соеди­не­ния. Ина­че обры­вы и зави­са­ния нам не дадут покоя.

Меню Систе­ма -> Соеди­не­ния
Сни­ма­ем галоч­ку вос­ста­нов­ле­ния свя­зи

Так­же реко­мен­ду­ет­ся сде­лать резерв­ную копию пап­ки Quik.

Шаг 1. Настройка потока котировок

Обра­ти­те вни­ма­ние на коли­че­ство исполь­зу­е­мых инстру­мен­тов и уста­но­ви­те полу­че­ние коти­ро­вок толь­ко по откры­тым поль­зо­ва­те­лем таб­ли­цам. Это суще­ствен­но сни­зит поток полу­ча­е­мой инфор­ма­ции с сер­ве­ров бро­ке­ра.

Из доку­мен­та­ции Quik‘a:

Исхо­дя из настро­ек откры­тых поль­зо­ва­те­лем таб­лиц» – полу­чать новые зна­че­ния толь­ко по тем инстру­мен­там и их пара­мет­рам, кото­рые отоб­ра­жа­ют­ся в откры­тых поль­зо­ва­те­лем таб­ли­цах про­грам­мы. Если при­знак вклю­чен, то с сер­ве­ра при­ни­ма­ют­ся пара­мет­ры по всем инстру­мен­там, отоб­ра­жа­е­мым в сле­ду­ю­щих окнах и таб­ли­цах

Меню “Система->Заказ данных->Поток коти­ро­вок”
Давим кноп­ку “Уста­но­вить настрой­ки по откры­тым таб­ли­цам”
…и полу­ча­ем коти­ров­ки толь­ко по нуж­ным нам инстру­мен­там. Давим “Да”

Шаг 1.1 Сохранение изменений

Сохра­ня­ем кон­фи­гу­ра­цию Quik‘a в исполь­зу­е­мый файл .wnd.

Шаг 2. Очистка служебных файлов

Закры­ва­ем тер­ми­нал Quik и уда­ля­ем фай­лы с рас­ши­ре­ни­ем .dat в корне пап­ки Quik. У меня там хра­нил­ся 21 файл, у кого-то это чис­ло может быть как боль­ше, так и мень­ше.

Пере­хо­дим в корень пап­ки Quik
Спи­сок фай­лов с рас­ши­ре­ни­ем .dat пап­ки Quik

Шаг 2.1 Добавление строки -clear

Для очист­ки слу­жеб­ных фай­лов с рас­ши­ре­ни­я­ми .log и .dat при каж­дом запус­ке тер­ми­на­ла добав­ля­ем к ярлы­ку Quik‘a стро­ку -clear.

Захо­дим в свой­ства ярлы­ка Quik
Пара­метр поз­во­ля­ет очи­стить слу­жеб­ные фай­лы. Давим на “Ок”

Нали­чие пара­мет­ра -clear несколь­ко уско­ря­ет загруз­ку тер­ми­на­ла Quik. Одна­ко, после обнов­ле­ния про­грам­мы пара­метр -clear при­дёт­ся зано­во добав­лять к ярлы­ку фай­ла info.exe. Так­же это не спа­сёт после авто­ма­ти­че­ско­го пере­за­пус­ка про­грам­мы.

Допол­ни­тель­но реко­мен­ду­ет­ся сде­лать сле­ду­ю­щее:

Захо­дим в меню “Основ­ные настрой­ки”
Уста­нов­ка при­зна­ка “На локаль­ной машине.” Давим на ОК.

Шаг 2.2 Запуск после внесённых изменений

Запус­ка­ем тер­ми­нал Quik‘a, загру­жа­ем исполь­зу­е­мую кон­фи­гу­ра­цию и про­бу­ем под­клю­чить­ся. Если не помог­ло и опять выда­ёт­ся сооб­ще­ние: “Уда­лён­ный хост при­ну­ди­тель­но разо­рвал суще­ству­ю­щее под­клю­че­ние”, то сле­ду­ем инструк­ции далее.

Шаг 3. А если не помогло, то ищем “толстого”

Теперь сохра­ня­ем заклад­ку само­го “жир­но­го” инстру­мен­та в отдель­ный файл:

Выбор заклад­ки — акция Сбер­бан­ка
Сохра­не­ние заклад­ки акции Сбер­бан­ка в отдель­ный файл

Мож­но сра­зу сохра­нить все заклад­ки в фай­лы по отдель­но­сти.

Шаг 4. Удаление закладок

Уда­ля­ем ранее сохра­нён­ную заклад­ку с самым “жир­ным” инстру­мен­том. В моём слу­чае это заклад­ка с гра­фи­ка­ми акций “Сбер­бан­ка.”

Уда­ле­ние заклад­ки с “жир­ным” инстру­мен­том

 Шаг 5. Подключение

Под­клю­ча­ем­ся к сер­ве­ру бро­ке­ра и авто­ри­зу­ем­ся. Если кар­ти­на не изме­ни­лась уда­ля­ем заклад­ку с менее “жир­ным” инстру­мен­том и так до тех пор, пока соеди­не­ние не будет уста­нов­ле­но ста­биль­но.

Шаг 6. Сохранение конфигурации со стабильным соединением

После того, как соеди­не­ние уста­нов­ле­но и не раз­ры­ва­ет­ся, сохра­ня­ем полу­чен­ный файл кон­фи­гу­ра­ций под дру­гим име­нем. Напри­мер, your_bunny_wrote.wnd.

Шаг 7. Загрузка сохранённых закладок

После уста­нов­ки ста­биль­но­го под­клю­че­ния к сер­ве­ру бро­ке­ра про­из­во­дим обрат­ные дей­ствия. Загру­жа­ем сохра­нён­ные заклад­ки:

Загруз­ка сохра­нён­ной заклад­ки
Выби­ра­ем заклад­ку и давим “Открыть”

Начи­на­ем в обрат­ном поряд­ке — с наи­ме­нее “жир­но­го” и дви­га­ем­ся к наи­бо­лее “тол­сто­му” инстру­мен­ту. На секун­ду тер­ми­нал под­ви­са­ет, но после это­го раз­ри­со­вы­ва­ет нуж­ные нам гра­фи­ки. Вуа­ля!

Ста­биль­но дер­жа­щий соеди­не­ние Quik

Повто­ря­ем шаг 7 до тех пор, пока не загру­зим уда­лён­ные заклад­ки всех необ­хо­ди­мых инстру­мен­тов. Бла­го у меня он один и обрыв соеди­не­ния про­ис­хо­дит толь­ко при сохра­не­нии в основ­ной файл .wnd заклад­ки с гра­фи­ка­ми Сбер­бан­ка. Хотя их там все­го 5 штук.

Шаг 8. Дальнейшие действия. Рекомендации

Перед каж­дым закры­ти­ем тер­ми­на­ла Quik сохра­ня­ем заклад­ку в отдель­ный файл, повто­ряя шаг 3 для каж­до­го “жир­но­го” инстру­мен­та.

Мы не зна­ем, на каком момен­те у Quik‘а воз­ник­нет жела­ние обо­рвать соеди­не­ние. Это воз­мож­но после оче­ред­но­го сохра­не­ния и загруз­ки фай­ла. Поэто­му реко­мен­дую иметь два таких фай­ла, напри­мер Сбер­банк и Сбербанк_new, сохра­няя изме­не­ния по оче­ре­ди то в один, то в дру­гой файл. Таким мето­дом мы умень­шим веро­ят­ность поте­ри дан­ных зане­сён­ных на основ­ной гра­фик инстру­мен­та.

Итоги

Ито­га­ми диа­ло­га с тех­ни­че­ской под­держ­кой бро­ке­ра и раз­ра­бот­чи­ка поде­люсь в одной из сле­ду­ю­щих заме­ток. Ну а я побе­жал сда­вать “ана­ли­зы” в виде сво­е­го wnd-фай­ла кон­фи­гу­ра­ции бро­ке­ру, кото­рый обе­щал про­ана­ли­зи­ро­вать его струк­ту­ру и решить дан­ный вопрос.

Наде­юсь, ста­тья помо­жет решить про­бле­му “Уда­лен­ный хост при­ну­ди­тель­но разо­рвал суще­ству­ю­щее под­клю­че­ние Quik” и про­шу тех, кому помог один из опи­сан­ных выше спо­со­бов отпи­сать­ся в ком­мен­та­ри­ях.

Спо­кой­ной ночи, кол­ле­ги!

Спе­шу поде­лить­ся резуль­та­та­ми обще­ния с тех­ни­че­ской под­держ­кой раз­ра­бот­чи­ка и бро­ке­ра. А они нахо­дят­ся тут 🙂

Так­же раз­ра­бот­чик при­слал свои реко­мен­да­ции. Они нахо­дят­ся тут.

Используемые источники:

  • https://compuals.ru/internet/udalennyj-host-prinuditelno-razorval-sushhestvuyushhee-podklyuchenie
  • https://rich-poor-trader.ru/poleznoe/udalyonnyj-host-prinuditelno-razorval-sushhestvuyushhee-podklyuchenie-quik/

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116