Версия для печати
Настройка DCOM для сервера CashTAN.EXE в сетях Windows NT
Настоятельно рекомендую для проверки работы сервера на клиентских машинах использовать Visual Basic for Application V6.0 фирмы Microsoft, который устанавливается в составе любой программы Microsoft Office (2000, XP), а также в составе программы SMarket 4.0 фирмы ТФПК. Это позволит отследить ошибки (а главное их номера), без чего достаточно сложно правильно настроить систему.
Для перехода в окно отладки необходимо нажать Alt+F11 для вызова редактора VBA, а затем Ctrl+G, для перехода в окно отладки. Для вызова сервера набирается следующая команда:
?CreateObject(“CashTANP9.Application”,”<имя сервера>/”).Version
и нажать Enter.

Для настройки DCOM применяется утилита dcomcnfg.exe, которая входит в поставку Windows NT. Для Windows 95,98 эту утилиту необходимо загрузить с сайта Microsoft по адресу http://www.microsoft.com/com/resources/downloads.asp.
Запуск утилиты: меню Start, Run.

Перед настройкой необходимо один раз запустить сервер CashTAN.exe как на клиентской, так и на серверной машинах. На клиентской после запуска желательно удалить.

Сервер под управлением системы типа Windows NT

Особенность COM сервера CashTAN состоит в том, что он рассчитан на постоянную работу с кассовым сервером, отсюда отсутствие программного метода выхода из приложения. Вторая особенность – невозможно запустить две копии CashTAN из одного каталога, поскольку первая копия блокирует рабочие файлы. Следовательно, необходима настройка DCOM таким образом, чтобы для разных пользователей создавалась только одна копия программы. Для этого в настройке DCOM необходимо указать пользователя, под именем(Identity) которого будет загружаться COM-сервер.
Если машина, на которой установлен сервер, используется как рабочая станция, то целесообразно использовать его сессию. В этом случае драйвер CashTAN будет загружен обычным образом и доступен как программно, так и интерактивно (визуально J). В противном случае для драйвера будет создана другая сессия, и закрыть его можно только из диспетчера задач, причем интерактивный пользователь должен быть такой же, какой указан в настройках DCOM, иначе – Access Denied.
Теперь настройка. Выбираем закладку Default Properties. Должна выглядеть так (в принципе, это по умолчанию):

Далее закладка DefaultSecurity, нажимаем кнопку Edit Default в разделе Default Access Permissions и добавляем пользователей(или группу), которым разрешено использование объекта:

Возвращаемся к закладке Applications, находим приложение «Драйвер CashTAN P9» и нажимаем кнопку Properties:

Закладка Location должна выглядеть так:

Переходим к закладке Security, отмечаем переключатель «Use custom launch permissions», нажимаем кнопку Edit и выбираем пользователей (группы), которым разрешено запускать сервер:

Теперь самое важное, закладка Identity. Как уже говорилось раньше, в случаях, когда машина используется как рабочая станция, выбирайте опцию «The interactive user», в других случаях – «This user» и вводите имя пользователя и пароль. Для этого пользователя должен быть разрешен «Log on as batch job», искать в «Administrative Tools» -> «Local/Domain Security Settings» -> «User Rights Assigment». Dcomcnfg устанавливает эти права самостоятельно, но, возможно, они перекрываются глобальными «Domain Security Settings». Обратитесь к администратору сети, если, конечно, вы не аминистратор :).


Настройка произведена. Нажмите кнопку OK на этом диалоге и на предыдущем.
Хочу заметить, что перед изменением параметров необходимо выгружать CashTAN.exe из памяти сервера. Проверяйте его отсутствие при помощи Task Manager.
Теперь переходим к клиентской машине (там пока никаких настроек не нужно), запускаем VBA и пытаемся создать объект:
?CreateObject(“CashTANP9.Application”,”<имя сервера/IP адрес>”).Version
Если все правильно установлено, в окно отладки будет выведен номер версии, в противном случае будет выведено сообщение об ошибке:
  • 8000401A, «The server process could not be started because the configured identity is incorrect.  Check the username and password.» - неверно введены имя пользователя и/или пароль, либо попытка запуска в режиме «The interactive user» без активного пользователя.
  • 462, «The remote server machine does not exist or is unavailable» сервер не найден или не отвечает. Проверьте имя сервера и доступность его по сети, напрмер, с помощью команды «Ping».
  • 463, «Class not registered on local machine» - не был запущен CashTAN.exe на клиенте, либо неверно написано «CashTANP9.Application» в команде.


Две ошибки, причины которых нужно искать на машине сервера:
  • 429, «ActiveX component can't create object» - внутренняя ошибка, либо на сервере запрещено удаленное подключение.
  • 70, «Permission denied» - доступ запрещен. Возможно, запрещено подключение по сети. Возможно, ответ придется искать в Security Policy, нужно смотреть события в «Event Viewer».


Нажмите правую кнопку на значке компьютера на сервере (можно и на клиенте), выберите пункт «Manage». Выберите папку «Event Viewer» и просмотрите события системы «System».

Вот пример ошибок:

это на клиенте, получена ошибка 70.

© ТФПК Лтд. Все права защищены.
0.013172 seconds