Как узнать порт подключения к серверу 1С. #752296


#0 by The_JOhn
День добрый коннекчусь по V83.COMConnector к 1С серверу Порт нестандартный 2540 Имя базы сервера и базы получаю через СтрокаСоединенияИнформационнойБазы но там уже фигурирует порт подключения непосредственно к базе. 2541. Вопрос, есть ли способ программно узнать порт сервера 1С (2540 который) или придется заводить константу? Спасибо.
#1 by Basma4
#2 by The_JOhn
так мне как раз к нему и надо подключиться. если порт нестандартный, то как его узнать?
#3 by Лефмихалыч
#4 by Лефмихалыч
а вообще, это называется service discovery. Под это можно заиспользовать DNS, добавив в нее SRV-запись. И потом перед соединением получать хост и порт от службы доменных имет, ни в какие константы этого не записывая. Внимательный читатель может сказать, что соответствие хост:порт в DNS и фактических значений придется блюсти руками и по сути это технически от константы ни чем не отличается, а просто константа - это dns. Отвечу "да" на оба замечания, но профит в этом все же есть по сравнению с константой. Но это какой-то дикий лес, руками этого делать я не пробовал, ибо понимаю пока плохо. Вот так добавить: Вот так потом прочитать: nslookup --type=SRV _appsrv1c._tcp PS _appsrv1c._tcp это придуманная из головы строчка - не надо думать, что это что-то, уже существующее в вашем сервере или еще где-то.
#5 by oleg_km
Я не нашел в винде API которое позволит создавать записи типа SRV. WMI для данного типа записи почему-то не работает. Пришлось использовать запись типа TXT
#6 by Лефмихалыч
иногда полезно ходить по ссылкам, которые в ответах тебе дают. Кроме того, это нужно раз в жизни - можно и руками в АД сделать. Да и понятнее там, я думаю, будет.
#7 by Лефмихалыч
а, то - не тебе, извини :)
#8 by Лефмихалыч
а читаешь потом чем? nslookup-ом же или какие-нить wmi есть?
#9 by oleg_km
ну пишет у меня служба 1С, а читает потом другая прога на C#. Просто если и пишет и читает приложения одной конфигурации 1С, то проще хранить тогда где-нибудь в базе 1С
#10 by Лефмихалыч
проще технически, да. Но в результате встанет вопрос санации бэкапов и тестовых баз, чтобы горя потом не хапнуть, года тестовая база ломанется в продуктивную среду делать неописуемое зло
#11 by Лефмихалыч
если вместо протокола использовать ИД окружения, которое как-то вычисляется в полете, то можно добиться того, что продуктивные базы будут запрашивать (например) записи а тестовые _1cappsrv._dev если изобрести (а это не сложно) способ вычислять правильно прод и дев в полете.
#12 by oleg_km
Тоже такое есть.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С