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

Лечим 54ю ошибку в 1С    Описание ошибки server_addr=tcp://:1562 descr=Ошибка сетевего доступа к серверу (Windows Sockets — 10054(0x00002746). Удаленный хост принудител…

Лечим 54ю ошибку в 1С

 Описание ошибки

server_addr=tcp://<имясервера>:1562 descr=Ошибка сетевего доступа к серверу (Windows Sockets — 10054(0x00002746). Удаленный хост принудительно разорвал существующее подключение.) line=1031 file=.srcDataExchangeTcpClientImpl.cpp

Как бороться с этой проблемой

Настроить Технологический журнал и разобрать его логи.
Наиболее частыми причинами бывают падения серверной части 1С:Предприятия.
В также можно убедиться, посмотрев — ане создаются ли дампы (смотреть путь logcfg.xml, если настройка dump-ов в нем отсутствует, то в каталоге %USERPROFILE%Local SettingsApplication Data1C1Cv81Dumps, например C:Documents and Settings<Имя пользователя>Local SettingsApplication Data1C1Cv81dumps. Падения платформы чаще всего могут возникать из-за запросов с нестандартными параметрами. Дампы отсылайте в техподдержку 1С email:v8@1c.ru.
1. Чаще всего мне встречалась проблема в журнале документов в отборах запросы были похожи на этот:

SELECT ALLOWED TOP 35 R.Date_Time A1,
R.Number A2,
R.Fld9608 A3,
R.Fld9613 A4,
R.Fld9606 A5,
R.Fld9610 A6,
R.Fld9611 A7,
R.Fld9607 A8,
R.Fld9612 A9,
R.Fld9615 A10,
R.Fld9614 A11,
R.Fld9609 A12,
R.Fld9605 A13,
R.Document A14,
R.Marked A15,
R.Posted A16,CAST(R.Fld9608 AS REF(Reference9)).Description
A17,CAST(R.Fld9606 AS REF(Reference52)).Description A18,CAST(R.Fld9611
AS REF(Reference93)).Description A19, CASE WHEN R.Fld9609 REFS
Reference53 THEN CAST(R.Fld9609 AS REF(Reference53)).Description WHEN
R.Fld9609 REFS Reference150 THEN CAST(R.Fld9609 AS
REF(Reference150)).Description WHEN R.Fld9609 REFS Reference63 THEN
CAST(R.Fld9609 AS REF(Reference63)).Description WHEN R.Fld9609 REFS
Reference114 THEN CAST(R.Fld9609 AS REF(Reference114)).Description END
A20,CAST(R.Fld9605 AS REF(Reference79)).Description A21
FROM DocumentJournal9604 R WHERE
((R.Fld9605=79:b63e000bcd6ad80811da7cf12c684266)) AND
(R.Date_Time > DATETIME(2006,12,31,12,0,0) OR (R.Date_Time =
DATETIME(2006,12,31,12,0,0) AND (R.Document >=
343:b654000bcd6ad80811dba49c7aabe269)))
ORDER BY A1 ASC, A14 ASC’

2. Пример лога ТЖ, показывающее причину падений сервера при обновлении полнотекстового поиска
11:40.9690-0,EXCP,1,process=rphost,p:processName=<база данных>,t:clientID=3, t:applicationName=BackgroundJob,t:connectID=27,Usr=DefUser,DumpFile=C:Program Files (x86)1cv81dumpsrphost_8.1.13.41_7d4e2366_20090609021136_10236.mdmp,Context=’
ОбщийМодуль.МодульРегламентныхЗаданий : 46 : ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Истина);’

Итоговым решением в этом примере будет отключить фоновый процес в проблемной базе. Дождаться нового релиза платформы и обновиться.
Более подробно про падения платформы смотрите в моем блоге.
3. Пример ТЖ для циклический перезапуск процессов. Для анализа этого события на компьютере сервера 1С:Предприятия необходимо включить запись в технологический журнал событий PROC (пример файла logcfg.xml).
Когда процесс выключается, будет выведено событие PROC со свойством Txt=Process become disable.
Когда процесс останавливается, будет выведено событие PROC со свойством Txt=Process terminated. Any clients finished with error. Если аварийные завершения работы пользователей совпадают по времени с выводом этого события, то причиной является принудительная остановка рабочего процесса либо администратором (через консоль кластера), либо вследствие автоматического перезапуска.
4. Убедиться, что причиной являются/не являются действия администратора в консоли

—————————-

Ниже представлен вариант решения коллегой.

Всем заинтересованным в решении проблем с падением платформы с ошибками:

10051, 10053, 10054, 10064

Как показал разбор полетов по падениям платформы, с выше указанными ошибками:

— Большинство падений вызвано именно работой фоновых заданий, как и предполагалось в топике.

— Не хваткой дискового пространства

— Наличием большого числа не завершенных транзакций в журнале 1С

* * *

— Прежде чем заниматься разбором с технологическим журналом, проанализируйте используемые в конфигурации фоновые задания и отключите те, которые не требуются Вам для работы, конфигурации (банально, анализ 14 ГБ мусора можно считать времяпрепровождением, если Вам нечем заняться… :))) )

— Проанализируйте и внесите исправления в дописанные Вами фоновые задания, убедитесь в том, что они завершаются с нормальным кодом завершения (без ошибок и не закрытых транзакций)

— Внесите в алгоритмы фоновых заданий фрагменты кода, ошищающие, принудительно, память используемую в ходе их работы (Не стоит надеяться на то, что 1С при завершении особождает использованную память)

— Проанализируйте и ИСПРАВЬТЕ ПРОБЛЕМЫ ФУНКЦИОНИРОВАНИЯ типовых фоновых заданий конфигурации

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

— Проанализируйте объем используемого пространства сервером SQL, вероятно что серверу банально нехватает памяти

— Проверьте политки настройки Active Directory

— И также сожмите/очистите журнал транзакций SQL вот примерно таким кодом (для SQL 2000):

Вариант 1:DBCC SHRINKFILE(pubs_log, 2)
(Если нужный размер не достигнут попробуйте вариант 2)Вариант 2:BACKUP LOG pubs WITH TRUNCATE_ONLY
DBCC SHRINKFILE(pubs_log,2) 

Где pub_log — имя Вашей базы данных

Вариант 3:
sp_detach_db — отключим с данной процедурой базу, а sp_attach_db — подключим снова. Журнал транзакций при этом очистится.
(ПОдробнее можно прочесть в разделах MSDN Q256650 (для SQL 7.0) и Q272318 (для SQL 2000).)

Вариант 4: (Для 7.0)
DBCC SHRINKFILE (file_name, target_size)
DBCC SHRINKDATABASE (database_name, target_percent)
BACKUP LOG database_name WITH TRUNCATE_ONLY

Если после этих операций падения продолжаются, тогда продолжайте следовать рекомендациям:

— Пробуйте внести изменения в файлы HOSTS операционной системы (вероятнее всего будет достаточно прописать ассоцирование только в файлы на одной/двух машинах, где падения происходят наиболее часто)

— Пробуйте разнести сервера 1С предприятия и SQL, если они у Вас на одной машине.

— Или наоборот установите их на одной машине (если хватает ресурсов) Отмечаются случаи, когда именно перенос серверов на один сервер помогало (На мой взгляд очень сомнительно и больше относится именно к причине начала работы, это сжатие журналов транзакций)

— Проверьте время отклика сервера (вероятнее всего, что все будет в пределах нормы, а редкие провалы во времени обслуживания, не могут столь сильно влиять на работу сервера предприятия)

— Проверьте работу маршрутизаторов в сети (Редко, но бывает, что именно их перенастройка влияет на количество падений)

— Проверьте конфликты оборудования в сети (это к вопросу, почему желательно иметь оборудование одного поставщика в сети. Кто хочет может проверить, например, в тех. документации 3COM написано: если сетевая карта обнаруживает, что взаимодействует с аналогичной сетевой картой, то она может быть переключена в более производительный режим, засчет перехода на оптимизированный алгоритм обработки сетевых пакетов, проверено на личном опыте скачок производительности до 50%)

— Проверьте уровни сигналов у потребителей/конечных компьютеров (может быть банально, низкий уровень сигналов, постоянные повторные запросы блоков, задержка очереди на обслуживание в сети, а следовательно в конце концов получение сообщения, что конечный серевер разорвал соединение, когда количество попыток превысит время ожидания поступления сигнала. Если хотите разобраться в данном вопросе обратитесь к протоколу работы Ethernet/CSMA CD/CSMA. Количество попыток в передаче пакета по данному протоколу не бесконечно… ))) Да и буфер в картах тоже не беспределен.)

— Добавьте памяти на сервера

— Переведите часть/всех пользователей в терминальный режим (Т.е. обеспечьте то, что МНОГИЕ пользователи определеяют как ТОНКОГО КЛИЕНТА 1C). В качестве такого сервера я бы рекомендовал Citrix Metaframe или Terminal Server MS

Вероятнее всего, когда Вы выполните указанные рекомендации, за исключением разбора проблем с железом, стабильность работы возрастет настолько что падения платформы станут очень редкими, что перекроют технологические промежутки по обслуживанию базы данных, выполнять которые всеже НЕОБХОДИМО и не думайте, что те рекомендации что указаны выше Панацея от всех проблем.

Они решат многие, но не все проблемы.

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

(С) Шарафан Александр (AXELOT, Москва)

———————————

Ряд проблем связан с утечками памяти.
1. Перезагрузите сервер.
2. Если у Вас 1 рабочий процесс, добавьте еще несколько, чтобы иметь возможность переподключиться в случаи сбоя рабочего процесса.

3. Если у Вас 32х разрядна версия сервера 1С, то пора купить 1С:Предприятие 8.2. Лицензию на сервер (x86-64).

Исследуйте роли «Пользователя», если они есть в типовой конфигурации конечно, и в частности, после того как вычислите проблемныйдокумент с помощью ТЖ, нужно найти проблемную роль (кто жалуется).
Далее для роли Пользователя смотрим РЛС документа, если дополнительных настроек нет (чисто), то правой кнопкой на нем — поиск ссылок на объект, и последовательно просматриваем РЛС для роли «Пользователь» для каждого объекта.

Ошибочное принятие высокой интенсивности пользователей за атаку на протокол в некоторых случаях Windows.
>Запустить программу regedit.exe, добавь новое значение типа DWORD с именем SynAttackProtect в раздел реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters и присвой ему значение 00000000
Имеет смысл делать для ОС Windows 2003 SP1 (http://msdn.microsoft.com/ru-ru/library/ms189083.aspx).

p.s. Кроме того, 54 ошибку можно получить на релизах <= 8.1.12.98 при ри конвертации конвертором ИБ 77(DBF) -> 81(SQL) в типовой ТиС (демо, взятой с ИТС) релиз. 954 в клиент-серверном варианте.
обойти можно так:
— выполните конвертацию в файловый фариант информационной базы 1С:Предприятия 8.1,
— выгрузите полученную информационную базу в файл,
— загрузите в клиент-серверный вариант информационной базы 1С:Предприятия 8.1.

Собрать логи ТЖ можно файлом logcfg.xml.

1С ошибка 10054 на Debian Squeeze

Ошибка Возникала при обмене УТ10 с БП2 и при других интенсивных операциях чтения/записи в БД.

Симптомы: серверные процессы 1С не падают, у клиента полностью теряется связь с сервером на 5 сек.

Сервер 1С и БД на одной машине под управлением Debian Squeeze.

Решение проблемы: установка параметра ядра tcp_syncookies в значение 0.

Код:

root@machine:~# echo «net.ipv4.tcp_syncookies = 0» >> /etc/sysctl.conf && sysctl -p
(автор Вадим Ивахин)

Содержание:

1.    Переход на последнюю версию платформы 1С как решение ошибки

2.    Очистка кеша на сервере для решения проблемы

3.    Исправление проблемы с подключением IPv6

Возникновение ошибки «Удаленный хост принудительно разорвал существующее подключение с 1С» зачастую сопровождается кодом 10054 (0x00002746). Откуда возникает эта ошибка и как ее исправить – об этом мы поговорим в данной статье.  

1.     Переход на последнюю версию платформы 1С как решение ошибки

Если у вас появилась ошибка «Удаленный хост принудительно разорвал существующее подключение», возможно, Вы совершили переход с одной версии на платформы на другую. В таком случае для исправления ошибки следует перейти на последнюю версию платформы 1С, которая будет более стабильной, или откатиться назад, если имел место переход на экспериментальную версию платформы. Хотя стоит отметить, что разработчики платформы, оперативно исправляют существенные баги. И с этой ошибкой были замечены всего лишь несколько версий платформы, которые уже канули в лету.  

2.   Очистка кеша на сервере для решения проблемы

Изменение версии платформы – не единственная из возможных причин возникновения ошибки «Удаленный хост принудительно разорвал подключение (10054)». Соответственно, обновление или откат также не являются универсальными решениями проблемы. В любом случае, если вы рядовой пользователь, Вам надо обращаться к системному администратору. Своими действиями вы никак не могли вызвать данную ошибку. Если же Вы специалист и ищете решение данной проблемы, то первым делом надо заняться очисткой кеша на сервере, очистить все сессии и перезагрузить сервер. 

Также не стоит забывать о такой простой вещи, как недостача свободного места на диске, где установлен SQL сервер. Одно из вытекающих решений – очистка памяти. Наконец, одно из популярных решений, которое помогает с этой проблемой, если вас 32 битный 1С сервер, это установка 64 битной версии 1С сервера. Если ничего из вышеперечисленного не помогло, то следует попробовать сжать базу, перезапустить службы агента сервера 1С, попробовать сделать выгрузку/загрузку.  

3.     Исправление проблемы с подключением IPv6

Ещё один нередкий случай: ошибка «Удаленный хост принудительно разорвал существующее подключение (10054)» возникает по причине подключения IPv6. Проверить это можно, открыв командную строку и выполнив команду Ping по имени вашей страницы. Проверьте адрес – по ответу сразу будет понятно, какой протокол в приоритете. Если это так, то следует отключить IPv6 через системный реестр и перезагрузить компьютер. Это можно сделать, создав запись в разделе HKLMSYSTEMCurrentControlSetservicesTCPIP6Parameters, запись «Параметр DWORD (32-бита)» с именем «DisabledComponents» и значением 0xff.

Специалист компании «Кодерлайн»

Юрий Сахно

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

Данная ошибка с кодом 10054, критического характера, проявляется у пользователей в момент проведения записи. Чаще всего встречается у старых релизов 1С 8.2.

Скриншот ошибки 10054:

oshibka-setevogo-dostupa-k-serveru

Вообще, появление этой ошибки, говорит о том, что происходит неожиданное для разработчика сервера 1С действие:

  • приходит некорректный запрос;
  • некоректные данные;
  • запрос вызывающий большую выборку, с которой он не может встретится;
  • частный случай: номер документа был больше, чем длина заданная в нумераторе;
  • проверьте работу при отключенных антивирусах или firewall-е

Исправление:

Заключается в локализации проблемы, насколько это возможно:

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

Затем делается копия базы (средствами 1С или СУБД).

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

Если перезапуск циклический проверьте не настроен ли у вас автоматический перезапуск в свойствах кластера:

intervaly-perezapuska-servera

Проводится тестирование и исправление с пересчетом итогов и реиндексацией таблиц._Тестирование и исправление 1 вариант

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

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

Что может выяснится в процессе:

  • наличие вызывающих сбой регламентных заданий: например переиндексация полнотекстового поиска, не забывайте очищать переменные в таких модулях;
  • для версии 8.2 можно попробовать добавить еще один процесс сервера, но не злоупотребляйте при недостатке памяти (в 8.3 это делается автоматически) dobavlenie-protsessa-1s-8-2-v-konsoli-klastera
  • отключите RLS (Контроль на уровне записей);
  • нехватка места на диске или его медленная работа;
  • очистка кэша пользователя, удаление временных файлов в Temp;
  • проведите shrink(сжатие) таблиц в sql
    DBCC SHRINKFILE(ИмяБазы, 2)

Если нагрузка на сервер, на грани 100%, рассмотрите вариант разделения сервера базы данных и сервера 1С, обычно это замедляет, но стабилизирует работу (в 8.3 есть механизм общей памяти, который ускоряет взаимодействие сервера и).

  • Добавьте память на сервер, если это возможно.
  • Возможным решением, будет замена сервера на 64 битный, но для начала проверьте работоспособность у знакомых, где он стоит.
  • Не помешает такая же проверка и на 32 битной, чтобы понять ошибка в данных или конкретном сервере.
  • Выгрузка с загрузкой может устранить проявление.
  • Крайней мерой рассмотрите перенос данных через конвертацию данных или догрузка данных в рабочую копию (длительная процедура)

Проверьте журналы Windows на предмет системных ошибок:

  • в работе сети
  • оборудования
  • приложения
  • перезапустите роутеры,свитчи (редко, но бывает проблемы именно в них)

Если проблема не решена в короткое время, возможно вам потребуется помощь сертифицированных администраторов или экспертов 1С.

Рекламные объявления содержат единственные правдивые сведения, которые можно найти в газетах.

   серый КТУЛХУ

28.10.21 — 14:38

1c 8.3.14.1976 + ms sql server2017 (14.0) на WS2012r2

не продакшн (наша площадка, разворачивание копий ИБ для доработок-разработок)

попытка загрузить измененную конфигурацию — ошибка (код — см.заголовок темы) «Удаленный хост принудительно разорвал существующее подключение. line=1582 file=d:jenkinsci_builderwindowsbuild2platformsrcrtrsrvcsrcdataexchangetcpclientimpl.cpp» с кнопками [Завершить работу] и [Перезапустить…]

попытка загрузить информационную базу — ошибка (код — см.заголовок темы) «Передача данных прервана по инициативе принимающей стороны. … descr= line=1982 file=(тот же — см.выше)» с кнопками [Завершить работу], [Подробно] и [Перезапустить…] (по [подробно] — тот же текст ошибки).

другие попытки загрузки ИБ — ошибка и модуль те же самые, текст м.б. также «принудительно разорвал» (и даже сразу парная такая ошибка вылетала).

до позавчера включительно все работало. вчера с утра пораньше — начались беды.

кого звать?

куда копать?

ну или м.б. на какие изменения с позавчера на вчера обратить внимание хотя бы?

заранее благодарен.

   серый КТУЛХУ

1 — 28.10.21 — 14:42

прим.: админ грит IPv6 отключил — не помогло.

   asady

2 — 28.10.21 — 14:42

(0) начни с очистки кэша

как локального так и на серваке

   МихаилМ

3 — 28.10.21 — 14:43

в поиск. видел такую тему

   серый КТУЛХУ

4 — 28.10.21 — 14:44

   серый КТУЛХУ

5 — 28.10.21 — 14:47

(2): я(мы) в rdp

что могу сделать я (и как)?

что передать админу (какой кэш? как? тупо зачистить C:Program Files1cv8srvinforeg_1541 ? возможные негативные последствия?

   Garykom

6 — 28.10.21 — 14:47

(0) ВК валит сервер 1С

   Garykom

7 — 28.10.21 — 14:48

(6)+ отрубить регламентные/фоновые и рестартануть

   Garykom

8 — 28.10.21 — 14:48

(6)+ это одно из предположений

   Dmitrii

9 — 28.10.21 — 14:50

(5) >>  зачистить C:Program Files1cv8srvinforeg_1541 ? возможные негативные последствия?

Удаление реестра кластера серверов 1С. Какие последствия?

Заново в кластере 1С будете пересоздавать все базы, в каждой базе пересоздавать заново индексы полнотекстового поиска, потеряете все журналы регистрации во всех базах. Больше ничего там не храниться.

   серый КТУЛХУ

10 — 28.10.21 — 14:51

(6),(7),(8) — ??? я спецом в заголовке темы указал «в конфигураторе» и даже добавил «(!)». и в описании ошибок — только работа в конфигураторе.

какие «ВК» в конфигураторе (кроме того что у нас их нет разве что скл-лицензирование)?

какие «регламентные/фоновые»?

   серый КТУЛХУ

11 — 28.10.21 — 14:52

* «слк-лицензирование»

   Garykom

12 — 28.10.21 — 14:52

(10) rphost рестартует к примеру

   МихаилМ

13 — 28.10.21 — 14:54

   Dmitrii

14 — 28.10.21 — 14:55

Остановка службы 1С:Предприятие с очисткой временных файлов.

Разумеется в имена переменных подставить ваши значения.

set LOG_FILE="scripts.log"
set SERVICE_1C_NAME="1C:Enterprise 8.3 Server Agent (x86-64)"
set SERVICE_RAS_NAME="1C:Enterprise 8.3 Remote Server"
set CNTX_PATH="C:srvinforeg_1541"
set PFL_PATH="C:ProgramData1C1cv8"
set TEMP_PATH="C:WindowsTemp"
echo stop %DATE% %TIME% >> %TEMP_PATH%%LOG_FILE%
sc stop %SERVICE_1C_NAME%
sc stop %SERVICE_RAS_NAME%
timeout 5
taskkill /f /im "rphost.exe"
taskkill /f /im "rmngr.exe"
taskkill /f /im "ragent.exe"
taskkill /f /im "ras.exe"
timeout 5
echo done stop %DATE% %TIME% >> %TEMP_PATH%%LOG_FILE%
echo clean temp %DATE% %TIME% >> %TEMP_PATH%%LOG_FILE%
DEL /Q /F /S %CNTX_PATH%snccntx*
DEL /Q /F %PFL_PATH%*.pfl
DEL /Q /F /S %TEMP_PATH%*.*
echo done clean temp %DATE% %TIME% >> %TEMP_PATH%%LOG_FILE%

Взято отсюда https://its.1c.ru/db/metod8dev#content:5899:hdoc

   серый КТУЛХУ

15 — 28.10.21 — 15:09

(9): т.е. чистить и геморроиться с этим всем — или не чистить (а тогда какие кэши как чистить?)

(13): спасибо, пробую. заменил в списке баз адрес сервера с имени на «localhost» (б/кавычек), без ошибок пока 7-я минута загрузки ИБ (всего д.б.30-32 минуты). (ну или админ там что-то наисправлял — переспрошу его чуть позже)

(14): по ссылке — настройка ТЖ, я вроде не про это. или это скрипт из приложений к статье? там остановка с чисткой? или таки рестарт?

   shuhard

16 — 28.10.21 — 15:25

(0) 10054 — детально описана Гилевым, по сути нехватка оперативной памяти + выход размера cf за разумные рамки

первое лечиться рестартом, второе кастрацией типовой(если речь о них) путем очистки ненужных общих макетов

   Dmitrii

17 — 28.10.21 — 15:32

(15) >> по ссылке — настройка ТЖ.

Нет. По ссылке «Check-list по настройке рабочих серверов в продукционной зоне».

>> это скрипт из приложений к статье?

Да.

>> там остановка с чисткой? или таки рестарт?

А ты читать совсем не умеешь?

Тот скрипт, что я сюда скопипастил в (14), я даже подписал: «Остановка службы 1С:Предприятие с очисткой временных файлов». То есть остановка с очисткой.

>> т.е. чистить и геморроиться с этим всем — или не чистить (а тогда какие кэши как чистить?)

Конечно не чистить. Ты скрипт из (14) смотрел? В реестре кластера (srvinforeg_1541) очищать надо только папку название которой начинается с «snccntx».

Остальная очистка кеша на сервере сводится к очистке папок C:ProgramData1C1cv8 и C:WindowsTemp. Разумеется после остановки всех служб и сервисов кластера и серверов 1С.

   серый КТУЛХУ

18 — 28.10.21 — 15:55

(13): спасибо, помогло (15) дошло до конца без ошибок — только не совсем ясно это смена пути бпзы помогла или там админ что-то подкрутил (буду спрашивать).

(16): спасибо. читал у гилева, там все про режим предприятия со всеми вытекающими; не мой вопрос.

(17): спасибо большое за полезную ссылка и еще более полезное разъяснение.

вопрос снят, всем спасибо.

с большой вероятностью сбоила днс. отключение ipv6 и замена адреса сервера (в списке баз) с символьного представления на ip-адрес — помогли. при этом есть ненулевая вероятность того, что в это же время что-то там на сервере подкрутил коварный и умный админ.

  

shuhard

19 — 28.10.21 — 16:02

(18)[читал у гилева, там все про режим предприятия со всеми вытекающими; не мой вопрос]

это тебе кажется, в конфигураторе УПП и ERP ловят ту же ошибку

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

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

Содержание

  • 1 Чем вызвана ошибка?
  • 2 Включение поддержки протоколов криптографии
  • 3 Принудительное включение протокола TLS 1.2
  • 4 Изменение реализации объекта Socket
  • 5 Добавление кода (только для Entity Framework)
  • 6 Обновление NET Framework

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

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

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

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

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

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

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

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». Добавьте к этому методу следующую строку кода:

if (ServicePointManager.SecurityProtocol.HasFlag(SecurityProtocolType.Tls12) == false)
{
ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol SecurityProtocolType.Tls12;
}

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

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

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

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

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

SocketError errorCode;
int nBytesRec = socket.EndReceive(ar, out errorCode);
if (errorCode != SocketError.Success)
{
nBytesRec = 0;
}

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

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

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

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

public DBEntities()
:base(«name=DBEntities»)
{
this.Configuration.ProxyCreationEnabled = false; // ADD THIS LINE !
}

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

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

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

Понравилась статья? Поделить с друзьями:
  • Windows error 10038
  • Windows error 10013
  • Windows error 0x800f0906
  • Windows error 0x80070017
  • Windows error 0x000000d1