сервер недоступен не отвечает завершается аварийно или порт занят другим приложением
База знаний
Try 2 Fix beta
Ошибка соединения с сервером 1С:Предприятие 8.3: server_addr=tcp://localhost:1540 descr= Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением)
После установки сервера 1С:Предприятие с платформой 8.3.13.1690 на Windows 10, а потом и на Windows Server 2016, мы получили неожиданную для нас ошибку. При создании «Центрального сервера 1С:Предприятие 8.3» начало появляться сообщение: «Ошибка соединения с сервером 1С:Предприятие 8.3: server_addr=tcp://localhost:1540 descr= Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением) line 1089 file=src\DataExchangeTcpClientImpl.cpp». Рассказываем, почему это происходит и как то победить!
Не так часто это бывает, но в данном случаем сообщение об ошибке действительно оказалось информативным. Вся проблема кроется в том, что в Windows 10 и Windows Server 2016 порты 1540 и 1541, необходимые для запуска сервера 1С:Предприятие, заняты системными службами. Поэтому для запуска сервера необходимо изменить стандартные порты на другие незанятые с помощью редактора реестра. Все подробности в нашем видео!
Эти статьи будут Вам интересны
«Синий экран смерти» BSOD 0x00000044: MULTIPLE_IRP_COMPLETE_REQUESTS
Не пытайтесь понять, что означает это загадочное MULTIPLE_IRP_COMPLETE_REQUESTS. Мы вот даже не пытались, слишком это сложно (хотя Википедия ответит на Ваши вопросы). Что мы получали: неожиданные вылеты при работе в Windows с «синим экраном смерти» с кодом 0x00000044. Вариантов решения проблемы мы сами нагуглили достаточно много и эти варианты были очень уж разными. Рассказываем, что именно помогло решить эту проблему в нашем конкретном случае.
Компьютер не включается. Простой способ проверки блока питания
Восстановление логина и пароля PPPoE в Windows
Многие провайдеры предоставляют доступ в Интернет с помощью присвоения динамического адреса, некоторые прописывают в договоре статические IP адреса, а некоторые предоставляют PPPoE логин и пароль. Эту пару можно вбить либо в роутер или другое сетевое оборудование, а можно создать PPPoE подключение прямо в Windows. Что делать, если Вы пользовались именно таким способом подключения, а теперь решили использовать роутер, а договор, например, потеряли. Рассказываем, как восстановить Ваши PPPoE логин и пароль для доступа в Интернет.
База знаний «Try 2 Fix» Beta
Все материалы свободны
к распространению с обязательным
указанием источника
Автоматическая классификация ошибок технологического журнала
Промо:
Описание проблемы:
Небольшой флешбек:
Вопрос автоматической классификации ошибок был поставлен у нас еще до появления самой конфигурации. Однако основная и первичная задача стояла в автоматическом мониторинге состояния системы в облаке и сообщении о проблемах производительности. Эти задачи на текущий момент решены и улучшаются время от времени. Теперь поговорим о варианте выполнения автоматической классификации ошибок. Информацию по данной тематике мы преподнесем в двух публикациях. В первой и текущей публикации мы кратко коснемся вопроса теории, а во второй более подробно остановимся на этом важном, на взгляд авторов аспекте.
Скажем сразу фактически никаких иных инструментов, кроме 1С, т.е. никакого зоопарка из кучи инструментов типа python и т.п. мы не использовать не будем)
Задача:
Отнести текстовое сообщение об ошибке на основе данных технологического журнала к одному из заранее определенных классов.
В качестве математики будем использовать механизм преобразования текстов в векторное пространство и косинусное сходство.
Структура статьи:
I) Практика
1 Шаг. Скачиваем необходимые ресурсы
А) Скачиваем обновленную конфигурацию «Мониторинг производительности» и обработку «АвтоматическаяКлассификацияОшибокВекторноеПространство.epf». Устанавливаем конфигурацию, если еще не стоит.
Б) Добавляем обработку в дополнительные отчеты и обработки. Подсистему выбираем «Замеры».
2 Шаг. Заполняем классификатор ошибок.
Открываем справочник «Известные ситуации» в подсистеме «Замеры». Создаем корневой элемент и называем его «Классификатор ошибок ТЖ». А далее создаем набор справочников в соответствии с примером ниже.
Роль, права, доступ, пользователь, пользователи
У пользователя недостаточно прав на исполнение операции над базой данных
Недостаточно прав на изменение реквизитов в документе
Недостаточно прав для просмотра
Недостаточно прав для работы с таблицей
Нарушение прав доступа!
Ошибка разделенного доступа к базе данных
Ошибка в ограничении доступа к данным
Data access restriction error
Идентификация пользователя не выполнена. Неправильное имя или пароль пользователя
Документ, справочник, регистр сведений, регистр накопления, план обмена
Запись, проведение, удаление, пометка на удаление, отмена проведения
Не удалось провести
Не удалось записать
Failed to save
Запись не верна! Период не может быть пустым!
Номер строки
Данные были изменены или удалены другим пользователем
Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!
Запись с такими ключевыми полями существует!
Ввод на основании непроведенного документа запрещен
Блокировка, заблокировать
Не удалось заблокировать
Ошибка блокировки объекта. Объект уже заблокирован
Конфликт блокировок при выполнении транзакции. Неустранимый конфликт блокировок
Превышено максимальное время ожидания предоставления блокировки
В данной транзакции уже происходили ошибки
Lock request time out period exceeded
Transaction was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction
Запрос невозможно исполнить
Длина шаблона поиска превышает максимально возможную для используемой СУБД
Microsoft SQL Server Native Client
Ошибка СУБД
Ошибка SDBL
Could not allocate space for object temporary run storage because the filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
User does not have permission to use the KILL statement.
The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION
Отчет, вариант отчета, макет
Скомпоновать, СкомпоноватьРезультат
компоновке результата, ОтчетОбъект, СформироватьОтчет
Ошибка компоновки макета
Невозможно применить элемент отбора
Ошибка исполнения отчета
Ошибка при выводе результата
Ошибка при исполнении запроса набора данных
Ошибка создания набора данных
Неверные параметры в операции сравнения
Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов
Преобразование значения к типу Булево не может быть выполнено
Преобразование значения к типу Число не может быть выполнено
Значение индекса выходит за границы диапазона
Индекс находится за границами массива
Ошибка при вызове метода контекста
Ошибка при выполнении операции над данными. Divide by zero error encountered
Синтаксическая ошибка
Поле объекта не обнаружено
Ошибка при получении значения атрибута контекста
Ошибка при установке значения атрибута контекста
Ошибка выполнения запроса
Ошибка при выполнении обработчика
Неверный первый параметр
Ошибка установки значения свойства. Недопустимое значение
Ошибка формата потока. Ошибка преобразования данных XDTO.
Недостаточно фактических параметров
Метод объекта не обнаружен
Процедура или функция с указанным именем не определена
Не задано значение параметра
Не установлено значение параметра
Ошибка обработки представления
Невозможно применить элемент отбора
Недопустимое значение
Непредвиденный символ при чтении JSON
HTTPСоединение, АдресРесурса
Не удалось получить данные проблема соединения. Ответ сервера: 301, 302, 401, 404, 408, 500
HTTP: Expectation failed
HTTP: Bad request
HTTP: Not found
HTTP: Method not allowed
Ошибка работы с Интернет: Не могу установить соединение
Не удалось проверить в сервисе. Не удалось подключиться к сервису
Процесс завершается. Исходящий вызов запрещен
Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением)
No connection could be made because the target machine actively refused it
An existing connection was forcibly closed by the remote host
База данных не обнаружена. База данных отсутствует в сервере баз данных. Не найдена база данных.
Соединение с сервером баз данных непригодно для использования после разрыва соединения администратором и будет переустановлено
Недостаточно свободной памяти для выполнения операции
На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто
На сервере 1С:Предприятия не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!
Не найдено ни одного сервера с размещенным сервисом
Локальный ключ недоступен
Локальный, не установлен
Файл программной лицензии не найден
Поиск лицензии в сервисе лицензирования
Ошибка вызова сервиса лицензирования
Session closed by administrator
Соединение с сервером баз данных разорвано администратором
Выполнение оператора KILL не привело к ошибке СУБД
Выбранная версия объекта отсутствует в программе
Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!
Файл не обнаружен
Невозможно открыть файл, удален
Ошибка при выполнении файловой операции
Ресурс не найден
Не удалось выполнить данную операцию. Подробности в Журнале регистрации
3 Шаг. Выполняем настройку обработки
А) Открываем форму «Настройка ‘Автоматическая классификация ошибок ТЖ'» дополнительной обработки.
Б) Указываем параметры обработки текстов. Это так называемая процедура подготовки данных для анализа. Настройки можно выполнить согласно рисунку ниже.
В) Указываем стоп слова/ стоп фразы/ синонимы (можете пропустить, если не знаете как и зачем)
Г) Указываем источники для получения данных и выполнения обработки (вкладка ‘Данные из базы’/’Выбрать данные из базы’). Обычно это ссылка на замер и свойство ‘Descr’.
Д) Используем текстовые данные с текстовым корпусом ошибок из файла или на основе данных базы. Это вкладка «Данные из базы»/»Выбрать данные из классификатора». Жмем кнопку «Выбрать данные из классификатора».
Е) Переходим к формированию базиса и векторного пространства ошибок технологического журнала. Вкладка «Базис».
Ж) Формируем базис данные для классификации. Последовательно нажимаем кнопки «Получить частотность», «Сформировать вектора», «Рассчитать векторное пространство».
З) Сохраняем настройки в замер.
4 Шаг. Выполняем проверку и настройку.
Выполняем оценку качества классификации.
Д) Вычисляем количество верных оценок, принимаем решение о дальнейшей настройки или завершении настроек.
Качество результата обработки можно получить по формуле:
5 Шаг. Запуск в работу!
Запускаем регламентное задание автоматической классификации. На вкладке замера загрузки логов можно увидеть результаты классификации в колонке «decision»
Открываем форму «Монитор ‘Классификация ошибок'» анализа данных или журнал замеров и смотрим результат.
Тема: Подключение к серверу 1С через COM-компонент
Опции темы
Поиск по теме
Отображение
Комбинированный просмотр
Мы используем vbs-скрипт для отключения пользователей от базы перед бэкапом.
Если на машине стоит один сервер 1С, то с подключением к нему проблем не возникает.
Но если один сервер стоит на стандартном порту, а второй (другой версии) – на каком-то другом, то подключиться ко второму серверу у нас не получается.
В нашем случае 1С v8.2 стоит на порту 1541 и 1С v8.3 стоит на порту 2541 на машине vm205.
Скрипт, на котором воспроизводится проблема, занимает две строчки – инициализация коннектора и подключение к серверу.
Если вызвать его без указания порта:
Set Connector = CreateObject(«V83.COMConnector»)
Connector.ConnectAgent(«vm205»)
То результат выполнения скрипта будет таким (коннектор попытался подключиться к серверу на порту 1541):
V83.COMConnector.1: Различаются версии клиента и сервера (8.3.9.2170 – 8.2.19.83), клиентское приложение: COM-администратор
Если вызвать с явным указанием порта:
Set Connector = CreateObject(«V83.COMConnector»)
Connector.ConnectAgent(«vm205:2541»)
То результат будет уже таким:
V83.COMConnector.1: descr=Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением) line=831 file=src\RemoteCreatorImpl.cpp
Также пробовали вызывать с указанием протокола (tcp://) и пробовали использовать IP вместо имени компьютера. Результат такой же: без порта – «различаются версии», с портом – «сервер недоступен».
Есть подозрение, что эта проблема связана с дефолтными значениями RAgentPortDefault, RMngrPortDefault, LowBoundDefault и HighBoundDefault в COM-коннекторе (их описание: [Только зарегистрированные пользователи могут видеть ссылки. ] ). Однако способов явно указать нужные значения мы не нашли.
Если у Вас есть решение, как подключить COM-коннектор к серверу на нестандартном порту, то очень прошу им поделиться.
Сервер недоступен не отвечает завершается аварийно или порт занят другим приложением
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами разобрали замечательную утилиту командной строки robocopy, и с ее помощью научились создавать точные копии папок, двигать их в нужное расположение и многое другое. В сегодняшней публикации я покажу вам, как устранять ошибку «Сервер RPC недоступен (The rpc server is unavailable)», покажу примеры, когда ее мониторинг очень важен в работе корпоративных сервисов.
Для чего нужна служба «Удаленный вызов процедур (RPC)»
Процедура сообщения RPC
Когда программные операторы, использующие структуру RPC, компилируются в исполняемую программу, в скомпилированный код включается заглушка, которая выступает в качестве представителя кода удаленной процедуры. Когда программа запускается и выполняется вызов процедуры, заглушка получает запрос и пересылает его клиентской программе и времени выполнения на локальном компьютере. При первом вызове клиентской заглушки она связывается с сервером имен, чтобы определить транспортный адрес, по которому находится сервер.
Программа среды выполнения клиента знает, как обращаться к удаленному компьютеру и серверному приложению, и отправляет сообщение по сети, которое запрашивает удаленную процедуру. Точно так же сервер включает исполняющую программу и заглушку, которая взаимодействует с самой удаленной процедурой. Протоколы ответа-запроса возвращаются таким же образом.
Данная служба есть в любой операционной системе Windows, начиная от Windows 7 и заканчивая Windows 11 и в любой из Windows Server редакции.
Как работает RPC?
Когда вызывается служба RPC (удаленный вызов процедуры), вызывающая среда приостанавливается, параметры процедуры передаются по сети в среду, в которой должна выполняться процедура, а затем процедура выполняется в этой среде. Когда процедура завершается, результаты передаются обратно в вызывающую среду, где выполнение возобновляется, как если бы оно возвращалось из обычного вызова процедуры.
Во время RPC выполняются следующие шаги:
Если вы видите ошибку «Сервер RPC недоступен” (The RPC server is unavailable)», то у вас точно недоступен порт 135. Это может быть критичным для ряда ситуации. Например вы не сможете сохранить настройки RDS фермы, если у одного из хостов RDSH есть проблемы с RPC, то вы будите видеть ошибку «Could not change the connection state for server», вы не сможете перевести его в режим обслуживания (Drain Mode)
Или в приложении Terminal Services Manager будет ошибка при попытке получения данных «Сервер RPC недоступен«.
Так же RPC может быть причиной проблемы в репликации контроллеров домена, где в логах Windows будет фигурировать ошибка ID 1722. Это очень не приятный момент, который может привести к большим проблемам.
Типы RPC
Существует пять типов RPC:
Почему может не работать служба RPC
Преимущества удаленного вызова процедур
К преимуществам удаленного вызова процедур можно отнести следующее:
Недостатки RPC
Некоторые из недостатков RPC включают следующее:
Проверка доступности службы RPC
Если вдруг компьютер не ответил, то это не значит, что он не работает, может работать брандмауэр и просто блокировать ping пакеты.
Небольшой пример из практики, предположим, что вы мигрировали сервер в другую подсеть, в итоге в DNS должна быть изменена соответствующая запись, но Windows это поймет не сразу, так как у нее есть свой локальный кэш, он живет 15 минут, поэтому если при проверке DNS имени вам выдается не тот IP-адрес, вам необходимо произвести очистку кэша DNS.
Если удаленный RPC порт доступен вы в в строке TcpTestSucceeded будет стоять статус «True».
Если будет порт закрыт или блокируется, то ошибка «Сервер RPC недоступен (The rpc server is unavailable)» вам обеспечена. Поняв, что порт не отвечает, нужно удостовериться, что трафик от клиента до сервера не блокирует фаервол. По умолчанию в любой версии Windows есть встроенный брандмауэр. На время тестирования и поиска причины, я советую его выключить для всех профилей. Сделаем мы это через командную строку:
Данная команда выключит брандмауэр на всех трех профилях сетевой карты.
Далее если порт 135 стал доступен, то можно делать правила на удаленном сервере. Напоминаю, что нужно сделать правило для трех служб:
Еще хочу отметить, что если у вас есть сторонние антивирусные решения, например Касперский, то там так же есть встроенный сетевой экран, где так же нужно будет создать необходимые, разрешающие правила, которые корректно будут обрабатывать трафик динамических RPC портов.
Проверка работы служб RPC
Следующим шагом является проверка состояния службы на нужном вам сервере или компьютере. Проверять следует три службы:
В оболочке PowerShell выполните команду:
Для удаленного выполнения Enter-PSSession svt2019s01 далее Get-Service RpcSs,RpcEptMapper,DcomLaunch| Select DisplayName,Status,StartType
Напоминаю, что в команде svt2019s01, это имя удаленного сервера. Как видно из примера, все службы RPC запущены и имею автоматический тип запуска.
Если службы не запущены, то откройте оснастку «services.msc’, зайдите в свойства службы и выставите автозапуск и попробуйте запустить вручную.
Если по каким, то причинам вы не можете запустить службу из оснастки, то можно это сделать через реестр (Кстати реестр можно править и удаленно). Для этого есть несколько веток, но для начала откройте окно «Выполнить» и введите regedit.
В каждом из этих расположений есть ключик «Start«, выставите ему значение «2«, это будет означать автоматический запуск службы.
Дополнительные сетевые проверки
В некоторых случаях причиной ошибок с доступностью RPC выступает сбой на сетевых адаптерах. Помогает сброс сетевых настроек и перезагрузка. В сети с Active Directory, старайтесь, чтобы на всех ваших сетевых адаптерах в свойствах были выставлены обе галки IPV4 и IPV6, особенно это актуально для контроллеров домена, где вы легко можете получать ошибку 1722. Еще может помочь отключение протокола Teredo у IPv6. В командной строке выполните:
Тема: Подключение к серверу 1С через COM-компонент
Опции темы
Поиск по теме
Отображение
Мы используем vbs-скрипт для отключения пользователей от базы перед бэкапом.
Если на машине стоит один сервер 1С, то с подключением к нему проблем не возникает.
Но если один сервер стоит на стандартном порту, а второй (другой версии) – на каком-то другом, то подключиться ко второму серверу у нас не получается.
В нашем случае 1С v8.2 стоит на порту 1541 и 1С v8.3 стоит на порту 2541 на машине vm205.
Скрипт, на котором воспроизводится проблема, занимает две строчки – инициализация коннектора и подключение к серверу.
Если вызвать его без указания порта:
Set Connector = CreateObject(«V83.COMConnector»)
Connector.ConnectAgent(«vm205»)
То результат выполнения скрипта будет таким (коннектор попытался подключиться к серверу на порту 1541):
V83.COMConnector.1: Различаются версии клиента и сервера (8.3.9.2170 – 8.2.19.83), клиентское приложение: COM-администратор
Если вызвать с явным указанием порта:
Set Connector = CreateObject(«V83.COMConnector»)
Connector.ConnectAgent(«vm205:2541»)
То результат будет уже таким:
V83.COMConnector.1: descr=Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением) line=831 file=src\RemoteCreatorImpl.cpp
Также пробовали вызывать с указанием протокола (tcp://) и пробовали использовать IP вместо имени компьютера. Результат такой же: без порта – «различаются версии», с портом – «сервер недоступен».
Есть подозрение, что эта проблема связана с дефолтными значениями RAgentPortDefault, RMngrPortDefault, LowBoundDefault и HighBoundDefault в COM-коннекторе (их описание: [Только зарегистрированные пользователи могут видеть ссылки. ] ). Однако способов явно указать нужные значения мы не нашли.
Если у Вас есть решение, как подключить COM-коннектор к серверу на нестандартном порту, то очень прошу им поделиться.