Ошибка соединения с сервером 1С и ошибка формата потока.




При подключении к серверу 1С из консоли получаем:

Ошибка соединения с сервером 1С:Предприятия 8.2:
Ошибка на сервере или соединение разорвано администратором
Ошибка формата потока

При запуске SQL базы получаем ошибку:

Ошибка при выполнении операции с информационной базой.
Ошибка на сервере или соединение разорвано администратором.
Ошибка формата потока

И так, исходные данные:

Свежеустановленная Windows 7 Professional x64, все апдейты и т.д. (проблема имеет место и на Server 2008 и на 2008R2)

Произведена установка платформы 1С 8.2 (тестировались релизы 8.2.16.3688.2.16.3638.2.15.319

Установлен сервер 1C x64 (32битный тоже пробовал)

Все работает до перезагрузки. После перезагрузки при попытке подключения к базе в SQL или открытии кластера в консоли 1С получаем отлуп с такими картинками:

При подключении к серверу 1С из консоли получаем:

Ошибка соединения с сервером 1С:Предприятия 8.2:
Ошибка на сервере или соединение разорвано администратором
Ошибка формата потока

Ошибка

При запуске SQL базы получаем ошибку:

Ошибка при выполнении операции с информационной базой.
Ошибка на сервере или соединение разорвано администратором.
Ошибка формата потока

 Ошибка

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

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

2. Удаление процессов rmngr.exe  rphost.exe (сам вылетает при завершении rmngr.exe).

3. Очистка каталога C:Program Files1cv82srvinfo
eg_1541snccntx (у 32 битного сервера C:Program Files (x86)1cv82srvinfo
eg_1541snccntx)

4. Запуск службы сервера 1С:Предприятия 8.2

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

Были протестированы:

1. различные релизы, различные серверы,

2. различные пользователи: Система, Администратор, USR1CV82.

3. принудительное выставление полных прав этим пользователям на каталоги C:Program Files1cv82 (у 32 битного сервера C:Program Files (x86)1cv82) с наследованием на дочерние объекты.

4. десятки перезагрузок и многое другое.

Однако причина оказалась куда более неожиданной! 


Разыменование в Windows 7 (Server 2008,  2008R2, вероятно и 2012)

 

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

Выполнить это просто: 

1. Запустите командную строку (Win+R, наберите cmd и нажмите ОК)

2. В командной строке наберите команду «Ping» пробел и имя вашего компьютера. Именно имя, а не его IP адрес. Нажмите Enter.

3. Если система начала пинговать себя через адрес вида fabc:de12:3456:7890:ABCD:EF98:7654:3210, или другой отличный от Вашего IP адрес

 — добро пожаловать в частный клуб багофичи разыменования по версии Windows 7.

Основа проблемы кроется в том, что 1С сервер не может по имени определить себя.

А вот, отображение Вашего IP в виде IPv6 — одна из самых частых причин возникновения этой ошибки. 

Еще одной из причин может быть периодическое подключение к другой сети (допустим ВПНу) когда создается новый интерфейс и Винда опять же начинает разыменовывать себя «неправильно».

Ниже я опишу два решения для обхода этой «особенности».

Предварительно хочу предупредить:

Все действия с Вашим компьютером Вы производите на свой страх и риск.

Человек выполняющий мои рекомендации должен понимать Что и Почему он делает!!!


Вариант №1 Добавить в Hosts свой ПК и его IP

1. Нужно найти файлик hosts в папке C:WindowsSystem32driversetc  Если в этой папке Вы не видите файлик Hosts, значит он просто скрыт. Тогда можно нажать клавишу ALT и, в появившемся меню, выбрать «Сервис»-«Параметры папок»-«Вид» и  снять там галочку «Скрывать защищенные системные файлы».  Можно еще установить переключатель «Показывать скрытые файлы, папки, диски», тогда вообще все будет видно.  (После манипуляций с Hosts, рекомендую вернуть галочку на ее прежнее место, что бы случайно чего не зацепить в будущем)

2. Открыть этот файлик в Notepad (блокнот) и в конец дописать строку вида 192.168.0.1 Server  (IPадрес ИмяПК). Сохранить и закрыть файлик.

3. Попробовать заново пропинговать свой ПК через имя. Если Вы снова не видите нужно IP — что-то пошло не так… Возможно антивирус вернул старую версию файла (Каспер такое любит) или что-то еще.

В общем нужно добиться правильного адреса при пинге через имя.

 Пример изменений в Hosts



Вариант №2 Отключить полностью протокол IPv6 (http://support.microsoft.com/kb/929852)

Этот варинт подойдет тольео если причиной ошибки является IPv6.
Стараясь быть впереди планеты всей, Windows 7, мало того что ставит IPv6 сразу ко всем интерфейсам, так она еще и ставит его в качестве дефолтного при разыменовании.  Однако на сегодняшний день этот протокол мало кто использует, а следовательно его можно/нужно отключить. Помните, что снятие галочки с протокола IPv6 в интерфейсе сетевой карты ничего не даст! 
  1. Нажмите Win+R, напишите regedit и нажмите Enter. Откроется редактор реестра.
  2. Если появиться запрос на разрешение действий, нажмите в  диалоговом окне Контроль учетных записей пользователей кнопку Продолжить.
  3. Найдите и выберите следующий подраздел реестра:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
  4. Дважды щелкните пункт DisabledComponents для изменения параметра DisabledComponents.
    Если параметр DisabledComponents отсутствует, его необходимо создать. Для этого:
    1. Находясь на ветке Parameters,  в меню Правка выберите пункт Создать, а затем — Параметр DWORD (32 бита).
    2. Введите DisabledComponents и нажмите клавишу ВВОД.
    3. Дважды щелкните пункт DisabledComponents.
    4. Введите значение    ffffffff   , а затем нажмите кнопку ОК
    5. Перегрузить компьютер.

Выглядеть должно так:

IPv6 OFF

Таким образом Вы отключите протокол IPv6 полностью и Винда не будет использовать его IP вдрес для разименования.

 

ВАЖНО!!!

Обязательно пропингуйте свой ПК через имя и убедитесь, что пинги идут на правильный IP адрес.  Не всегда, с первого раза, удается отключить IPv6 (то имя параметра не совсем правильное, то значение…)

 

Хочу напомнить, что оба решения не являются панацеей, и не самом деле позволяют обойти ошибку, а не устранить ее причину.

49 Comments

  1. han_kdz

    Спасибо огромное. Та же ситуация на Windows Server 2008 R2. Удаление ipv6 из настройки сетевой карты ничего не да дает, но описанный вариант №1 сработал!

    Респект!

    Reply
  2. Alex_IT

    (1) han_kdz, Да, у меня на IPv6 тоже была снята галка, однако Винда все равно пинговалась через IPv6. Видимо причина в том, что снятие галки на определенном интерфейсе не отключает сам протокол в системе. При этом, мой второй метод отключает IPv6 именно во всей ОС и так же лечит проблему с Сервером1С.

    Reply
  3. User_E

    По повду Hosts сталкнулся с проблемой что его нет в каталоге C:WindowsSystem32driversetc, это касается 7-ой винды. Решил проблему запус блокнота от имени админа и через файл открыть руками прописал hosts.

    Reply
  4. Alex_IT

    (3) User_E, Тоже вариант, но можно просто нажать ALT и в появившемся меню «Сервис-Параметры папок-Вид» СНЯТЬ галочку Скрывать защищенные системные файлы. Можно еще установить переключатель «Показывать скрытые файлы, папки, диски», тогда вообще все будет видно.

    Reply
  5. mc2

    Огромное спасибо. Сработал второй вариант под Windows 7.

    Reply
  6. sanches

    Большое СПАСИБО. Ставлю авансом +, проверю позже 🙂

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

    Reply
  7. fancy

    Я тоже с таким сталкивался, если вдруг на сервере 1С пропадал интернет, или наоборот подключался (к примеру 3g-модем)

    Reply
  8. xzorkiix

    Пацаны ваще котята! Спасибо.

    Reply
  9. maxim305

    Спасибо, актуальная статья!

    Reply
  10. alekseies

    Сталкивался с такой ошибкой. 1С Предприятие 8.2 УПП Клиент-Сервер. Пришлось снесты антивирус NOD32 3.x 4.x/ Все за работало!

    Reply
  11. Alex_IT

    (10) alekseies, Антивирус может быть причиной именно этой ошибки, в том случае если он создает свой сетевой интерфейс, тогда разыменование вполне может пойти именно через интерфейс антивируса.

    Reply
  12. РоманКокарев

    После совершения действий из 1ого вариант пингуется как положено автором. Будем надеяться, что это поможет избежать данной ошибки в будущем.

    Reply
  13. mad_maksim

    Предыстория долгая, можно было короче. В целом информация полезная.

    У меня десятки серверов с активным ipv6, с таким не сталкивался.

    Интересно было бы понять причину таких ситуаций.

    Пока озвучена одна — кривой антивирус NOD (который, к слову сказать, вообще нельзя ставить на сервера)

    Reply
  14. Alex_IT

    (13) mad_maksim, Антивирус может быть частным случаем, но не массовым.

    Расскажите, какие релизы платформы установлены на Ваших серверах и какая операционка установлена?

    Reply
  15. Garstag

    Операционка на сервере — Win2008 R2, антивирус — McAfee, сервер эксплуатируется уже 3 года с разными версиями платформ. С такой проблемой сталкивался на клиентских машинах, при соединении из другого домена. Решил дописыванием суффикса в интерфейсе IPv4.

    Reply
  16. Alex_IT

    (15) Garstag,

    А установлен ли SP1 на серверах и какой текущий релиз платформы 8.2?

    У меня тоже есть сервера на 2008R2, установленные 2-3 года назад и, согласен, там нет такой проблемы.

    И точно ли с такой ошибкой Вы встречались? Т.к. похожих ошибок очень много, но эта особенная 🙂

    У меня есть подозрение, что причина в схеме назначения метрики интерфейсов/протоколов . И, видимо, эта схема поменялась при выходе SP1… Я игрался с метрикой интерфейсов на своей машине — все указывает на нее…

    Reply
  17. Garstag

    SP1 на сервере установлен, у нас все обновления отслеживаются службой WSUS. Сейчас установлена платформа 8.2.16.363, но начинали мы с платформы 8.1

    Сказать не могу, что у нас была именно эта ошибка, но очень уж похожая по описанию…

    Reply
  18. Alex_IT

    (17) Garstag, Вероятно ошибка была другой. Просто, ошибка формата потока может возникать минимум в 5 абсолютно различных случаях, многие уже описывались на разных ресурсах.

    Reply
  19. sergey_s_

    Ситуация такая же на Windows Server 2008 R2 х64 SP1.

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

    Использовал «Вариант №1» все заработало!

    Афтару Огромное Спасибо.

    Reply
  20. zaxarovsky

    Спасибо за статью, помогла разобраться в проблеме!

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

    Просто в окне запуска инфобаз в настройке подключения базы заменил имя кластера серверов 1C с айпишного на именованное (192.168.100.11:1541 поменял на vterm:1541).

    (При этом имя центрального сервера в консоли 1С задано как vterm)

    Reply
  21. Alex_IT

    (20) haz, Да, помню еще по работе с КИПом, вроде Гилев отмечал, что подключение и сам кластер обязательно должны быть по имени, а не по IP адресу.

    Reply
  22. xpym-xpym

    (13) mad_maksim,

    НОДа нет, а 1С на сервере не работает

    (20) haz,

    это не помогло

    пускай админы танцуем с бубном дальше

    Reply
  23. maratimus

    спасибо огромное, иначе я бы еще долго танцевал в бубном вокруг эмулятора,

    а 8.2.18 проблема существует или уже решена?

    Reply
  24. Alex_IT

    (23) maratimus, не пробовал, как-то надежнее самому прописать 🙂

    Reply
  25. Brovin

    Спасибо, первый способ помог. После внезапного перезагруза сервера сначала слетела аренда ip адреса по DHCP, а после прописывания айпишника вручную всплыла данная проблема, решилась исправлением файла hosts. Windows Server 2008 R2 х64

    Reply
  26. wbazil

    так же сталкивался с этой проблемой, отключение Ip6 через реестр помогло раз и навсегда

    проще всего в файл с именем Ip6Disable.reg

    добавить строчки

    REGEDIT4
    
    [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTCPIP6Parameters]
    «DisabledComponents»=dword:ffffffff

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

    Reply
  27. Alex_IT

    (26) wbazil, если только отключить IPv6, и если у Вас есть периодически подключаемые ВПНы, то Вы вполне успешно поймаете этот же глюк, но уже без IPv6. Т.ч. изменения hosts пока самый надежный метод 🙂

    Reply
  28. wbazil

    (27) Alex_IT

    VPNнов у нас на серверах 1с нет, народ ходит на отдельную терминалку и через неё уже подключается к 1с

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

    Reply
  29. evoo

    Неделю мучилась с этой ошибкой, программа запускалась через раз, публикация очень помогла. Спасибо! 🙂

    Reply
  30. erp-consul

    лечится также простой переустановкой серверной части 1с

    Reply
  31. Alex_IT

    (30) erp-consul, абсолютно никак не поможет. Почитайте статью, ошибка проявлялась на разных релизах. Возможно в современных, что то и исправили, но я не проверял.

    Reply
  32. artfa

    у меня отваливалась служба Агента сервера 1с (SQL standart 2012, 1с 8.3.2.163) после загрузки ПК в теч. 5-10 мин., служба висела как работающая, однако при перезапске не запускалась, осюда последствия со всеми вытекающими.

    пробовал переустановить сервер 1с, проблема осталась.

    отключил ipv6 и все стало нормально.

    Reply
  33. Alex_IT

    (32) artfa, значит проблему так и не пофиксили.

    Reply
  34. artfa

    Alex_IT, проблема устранена и меня это устраивает, кстати пинговался нормально, так же вручную прописывал в hosts сервер, результат = 0, а причина в чем? может вы проясните, все локально

    Reply
  35. artfa

    забыл добавить Windows 7

    Reply
  36. Alex_IT

    (35) artfa, если пинговался по Имени с выводом IPv4 адреса, то проблема была не в ipv6, но т.к. после отключения ipv6 все начало нормально работать, то проблема именно в ipv6.

    Следовательно, можно предположить, что вы пинговали комп по Ip адресу(IPv4), а не имени. Но я могу и ошибаться.

    Reply
  37. artfa

    Alex_IT, пинговал по имени

    Reply
  38. Alex_IT

    (37) artfa, тогда есть еще какой-либо нюанс, но определить его не могу. Но, главное, что отключение IPv6 решило проблему и это хорошо 🙂

    Reply
  39. nick_krsk

    Спасибо огромное за статью!

    Очень помогла при решении проблемы. Другие варианты решения, найденные в интернет, не помогали.

    Reply
  40. amadeus2011

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

    Reply
  41. Serge_ASB

    Попробовал отключить Ipv6… Результат будет только завтра.

    Второй вопрос. Кроме Tcpip6 в регистре есть какой-то ipv6tunnel. C ним чего делать?

    Reply
  42. Alex_IT

    (41) Serge_ASB, Ничего с ipv6tunnel делать не нужно. Если IPV6 отключен, то этого будет достаточно. Обычно даже достаточно простой записи в хостс.

    Reply
  43. oleglega

    Спасибо большущее! Прописал IP в файле hosts, перезагрузился — заработало!

    Reply
  44. LexBG

    Спасибо за статью! Первый способ помог. Но и ipv6 отключил на всякий случай 🙂

    Reply
  45. Grohovod

    В статье ошибка.

    Значение 0xfffffff неправильное.

    Нужно устанавливать 0xff

    Внимательно читайте https://support.microsoft.com/ru-ru/kb/929852.

    Reply
  46. Alex_IT

    (45) Grohovod, в статью https://support.microsoft.com/ru-ru/kb/929852 последнее изменение внесено 8 марта 2015 г., на момент написания моей статьи там было именно 0xfffffff. И именно по этой причине Микрософт внесла в заголовок статьи описание ошибочного значения.

    Однако, на практике проверено, что 0xfffffff отлично отключает IPv6 (или отключал).

    Reply
  47. pencil

    Огромное спасибо. Замучился с регулярным отвалианием 1С на девелоперской машине. Всю голову сломал отчего такое происходит, учитывая что всё крутится на одном компе.

    Reply
  48. Serge_ASB

    На утро пользователи БД (УТ 10.3) MS SQL 2008R2 1C 8.3.7.1845 получают следующее:

    «Ошибка формата потока».

    Запустить в режиме Предприятия и в режиме Конфигуратора нельзя.

    Работает только Web интерфейс.

    Консоль серверов 1С запускается.

    SQL Management запускается.

    Как-то можно протестировать БД средствами SQL?

    P.S. Базу восстановить получается из резервной копии SQL предыдущего дня.

    Reply
  49. Cartman

    Чет для 8.2 ничего не помогает, бьюсь уже третьи сутки.

    Ядро 8.2 последнее, postgres 9.1.9

    Локально все работает, в терминале работает. А с удаленного компа по сети ошибка

    Ошибка на сервере или соединение разорвано администратором

    Ошибка формата потока.

    В сети всего 2 компа, ни с первого на второй ни со второго на первый не заходит.

    Все что в статье сделал, пинги идут нормально через ip4.

    Всю голову сломал.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *