CreateObject на удалённой машине

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

CreateObject на удалённой машине

Сообщение keks-n » 04.05.2006 (Чт) 21:29

Тут недавно с проблемой столкнулся... Ну, расскажу по порядку:
1) увидел аргумент server
2) передал туды левый IP-ошибка:нет такой машины в сети
3) набрал свой IP - заработало
4) ну, думаю: с винсоком маятся не буду, всё через COM интерфейсы гонять буду.
5) Пытаюсь наладить соединение-ошибка 70:Доступ закрыт.
Почему оно её выдаёт, и как с этим бороться?

З. Ы. В MSDN и на форуме чего-то я про это не нашёл(видимо не правильно искал), но где-то слышал, что после очередной заплатки DCOM игнорирует внешний траффик, возможно проблема в этом.
Изображение

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 04.05.2006 (Чт) 23:44

Э-э-э, чувак... DCOM захотелось? Мне тоже хотелось в свое время, да :).

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

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: CreateObject на удалённой машине

Сообщение codemaster » 05.05.2006 (Пт) 10:32

keks-n писал(а):Тут недавно с проблемой столкнулся... Ну, расскажу по порядку:
DCOM игнорирует внешний траффик, возможно проблема в этом.


у тебя закрыт доступ -> 70!
см. http://www.vbrussian.com/Article.asp?ID=31

или

http://www.rsdn.ru/article/com/comsec.xml
//<-
Mit freundlichen Grüßen
//->

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 05.05.2006 (Пт) 15:22

Ennor писал(а):Попробуй для начала настройку прав в dcomcnfg.exe. Но вообще, с винсоком оно гораздо сподручнее будет, можешь мне поверить...


Ну, не скажи, если сильно"распределено", то придётся свой протокол делать.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 05.05.2006 (Пт) 17:47

А в любом случае первый же NAT убьет на корню всю DCOM-распределенку. Так что XML-based что-нибудь over HTTP - это наше все :). Если, конечно, нет скоростных требований - тогда точно свой протокол делать придется, причем бинарный, скорее всего.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 05.05.2006 (Пт) 17:52

Ennor писал(а):А в любом случае первый же NAT убьет на корню всю DCOM-распределенку. Так что XML-based что-нибудь over HTTP - это наше все :). Если, конечно, нет скоростных требований - тогда точно свой протокол делать придется, причем бинарный, скорее всего.


Ну, я б не говорил так однозначно. у меня, например, на шлюзе определённые гуиды пускает, с определённых адресов. Кроме того DCOM можно по HTTP пустить. Да и локалки никто не изменял.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 06.05.2006 (Сб) 19:10

Sebas писал(а):у меня, например, на шлюзе определённые гуиды пускает, с определённых адресов.

Случаем, ГТ-комовским гейтом на телию не ты рулишь? Прокинь мне там тогда до немчуры вланчик...

Насколько я помню, DCOM включает в свои пакеты айпишники машин, относящиеся к приватным подсетям, плюс еще что-то, и именно это не дает применять его в интернете. И я не думаю, что простой перевод его на другой транспорт позволит так просто решить эту проблему.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 07.05.2006 (Вс) 12:30

Ennor писал(а):А в любом случае первый же NAT убьет на корню всю DCOM-распределенку. Так что XML-based что-нибудь over HTTP - это наше все :). Если, конечно, нет скоростных требований - тогда точно свой протокол делать придется, причем бинарный, скорее всего.


Полный Бред! :lol: :lol:
Посмотри в модель OSI - на каком уровне работает NAT а где DCOM а потом подумай что написал !
//<-
Mit freundlichen Grüßen
//->

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 07.05.2006 (Вс) 19:28

Специально для codemaster, но не только: когда я был маленьким и глупым, я тоже иногда так делал - сначала говорил, а потом думал.

PRB: DCOM Does Not Work over Network Address Translation-Based Firewall

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 07.05.2006 (Вс) 20:08

Ennor писал(а):Специально для codemaster, но не только: когда я был маленьким и глупым, я тоже иногда так делал - сначала говорил, а потом думал.

PRB: DCOM Does Not Work over Network Address Translation-Based Firewall


нота хорошая только прочитай до конца в REFERENCES
расписано что всетаки нужно сделать на NAT .

Есть одна беда с защитой и активацией но она решается при помощи фильтрации на пограничном маршрутизаторе.
//<-
Mit freundlichen Grüßen
//->

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 08.05.2006 (Пн) 4:35

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

You should be aware that callbacks in DCOM are not handled on the same connection that is used for client/server method calls. When a server makes a callback to a client, it creates a new connection to the client and sends method calls over that separate channel. In other words, DCOM treats callbacks just like any other client/server method call, except that your "client" is really a server and the "server" is really a client. In some circumstances (this is very rare), you may need to configure port restrictions on your clients if your firewall restricts what ports machines on the inside can connect to on the outside.

Если на клиенте стоит NAT (у меня дома, например, стоит), то идеально круглый конь в вакууме начинает проигрывать. Более того, я не смогу объяснить вчерашнему братку, который сегодня решил стать клиентом моей конторы, что такое порт форвардинг и как ему это настроить на его конкретном DSL-модеме. Ну и последнее: даже если ему это настроят, то больше одной машины на один внешний IP не подключить в принципе.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 08.05.2006 (Пн) 11:03

Ennor писал(а):
Если на клиенте стоит NAT (у меня дома, например, стоит), то идеально круглый конь в вакууме начинает проигрывать. Более того, я не смогу объяснить вчерашнему братку, который сегодня решил стать клиентом моей конторы, что такое порт форвардинг и как ему это настроить на его конкретном DSL-модеме. Ну и последнее: даже если ему это настроят, то больше одной машины на один внешний IP не подключить в принципе.


с трудом представляю зачем дома NAT на единичной машине.
На один внешний IP разумеется можо подключить гораздо более чем одну машину.

Вобще к любой железке идет мануал где расписно что нужно сделать
иногда с картинками .
//<-
Mit freundlichen Grüßen
//->

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 08.05.2006 (Пн) 14:05

codemaster писал(а):с трудом представляю зачем дома NAT на единичной машине.

А с чего ты взял, что она у меня одна? У меня их четыре. А НАТ встроен в ADSL-роутер, и он без него не работает. Т.е. работает, но как бридж, что для меня неприемлемо.
codemaster писал(а):На один внешний IP разумеется можо подключить гораздо более чем одну машину.

Просто подключить к инету - да, без проблем. А подключить так, чтобы DCOM с одного и того же сервера работал сквозь один и тот же НАТ для нескольких машин внутри - в общем случае потребует некислой переконфигурации: а) собственно НАТа; б) настройки DCOM на каждом клиенте; в) сервера.

К сожалению, моей квалификации в этом вопросе совершенно недостаточно даже для того, чтобы понять, возможно ли вообще такое подключение, в принципе. Особенно, когда сервер в Западной Европе, клиент в Новосибирске, а служба поддержки - в Москве, и никто никуда не ездит. По статьям на Microsoft я понял, что эта проблема нерешаема, т.к. технология явно предназначалась для использования исключительно в интранете.

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

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 08.05.2006 (Пн) 15:35

Ennor писал(а):
С удовольствием выслушаю способ решения, в случае если таковой будет предложен...



Что касается DCOM то все зависит от количества клиентов.
Если клиентов много и они технически слабы то лучше (читай проще) пользовать тунель VPN, IIS или если CallBack не требуется
вообще не пользовать DCOM а переделать все под SOAP.
Есть правда еще одна забытая технология - RDS

Клиентов немного 1-2:
настройка проброса портов фильтрации на клиентском и серверном маршрутзаторе .
настраиваем DCOM (дапазон портов ,безопасность ->0)
//<-
Mit freundlichen Grüßen
//->


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 138

    TopList