четверг, 4 апреля 2013 г.

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

При запуске 1С на сервере (Windows Server 2008 R2), появлялось окно с сообщением



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



Для возможности запуска базы и подключения к кластеру из консоли помогало только:
1. Остановка службы сервера  1С:Предприятия 8.2
2. Удаление процессов rmngr.exe  rphost.exe (сам вылетает при завершении rmngr.exe).
3. Очистка каталога C:\Program Files\1cv82\srvinfo\reg_1541\snccntx (у 32 битного сервера C:\Program Files (x86)\1cv82\srvinfo\reg_1541\snccntx)
4. Запуск службы сервера 1С:Предприятия 8.2
 Однако, в процессе работы с SQLной конфой, можно было неожиданно поймать аварийное закрытие 1Ски с последующим получением этих же ошибок.
Были протестированы:
1. различные релизы, различные серверы,
2. различные пользователи: Система, Администратор, USR1CV82.
3. принудительное выставление полных прав этим пользователям на каталоги C:\Program Files\1cv82\ (у 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:\Windows\System32\drivers\etc  Если в этой папке Вы не видите файлик Hosts, значит он просто скрыт. Тогда можно нажать клавишу ALT и, в появившемся меню, выбрать "Сервис"-"Параметры папок"-"Вид" и  снять там галочку "Скрывать защищенные системные файлы".  Можно еще установить переключатель "Показывать скрытые файлы, папки, диски", тогда вообще все будет видно.  (После манипуляций с Hosts, рекомендую вернуть галочку на ее прежнее место, что бы случайно чего не зацепить в будущем)


2. Открыть этот файлик в Notepad (блокнот) и в конец дописать строку вида 192.168.0.1 Server  (IPадрес ИмяПК). Сохранить и закрыть файлик.
3. Попробовать заново пропинговать свой ПК через имя. Если Вы снова не видите нужно IP - что-то пошло не так... Возможно антивирус вернул старую версию файла (Каспер такое любит) или что-то еще.
В общем нужно добиться правильного адреса при пинге через имя.



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

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

PS. Мне лично помог метод с редактированием файла hosts...



Комментариев нет:

Отправить комментарий