DLL работающая на сервере
От: Mark_M  
Дата: 06.04.04 11:39
Оценка:
Помогите! Надо создать серверную DLL (или EXE), работающую на сервере (для работы с базой данных).
1. Создаю в VB6 проект DLL и компилю;
2. На сервере регистрирую (regsrv32);
3. На сервере: "Панель управления" -> "Администрирование" -> "Службы компонентов" -> "Приложения COM+" создаю новое приложение (указывая, что оно серверное и, что пользователь текущий);
4. В приложении создаю новый компонент, где выбираю мою DLL;
5. Создаю командой экспорт дистрибутив для клиентской машины, где указываю что это дистрибутив "Прокси приложения"
6. Инсталирую дистрибутив на клиентской машине.
7. Запускаю клиентское приложение (создающее объекты из серверной DLL функцией CreateObject) и... не работает — жалуется не могу создать объект.
Может кто подскажет в чём моя ошибка. Заранее благодарю.
Re: DLL работающая на сервере
От: retalik www.airbandits.com/
Дата: 07.04.04 15:41
Оценка:
Здравствуйте, Mark_M, Вы писали:

M_M>6. Инсталирую дистрибутив на клиентской машине.

M_M>7. Запускаю клиентское приложение (создающее объекты из серверной DLL функцией CreateObject) и... не работает — жалуется не могу создать объект.

Вроде все нормально делаешь. Сообщи код ошибки.
Кроме того, на всякий случай, включи на сервере аудит входа в систему (Администрирование-Локальная политика безопасности-Локальные политики-Политика аудита). Если проблемы с доступом, они появятся в журнале событий (Журнал безопасности).

M_M>Может кто подскажет в чём моя ошибка. Заранее благодарю.

Еще проверить надо, как зарегистрировано прокси-приложение на клиенте. Под CLSID твоего сервера не должно оставаться старого ключа:
HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{твой CLSID}\InprocServer32

Кроме того, на клиенте будет такой ключик:
HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{твой CLSID}\AppID

И вот по этому AppID можно найти строку с настройками:
HKEY_LOCAL_MACHINE\Software\CLASSES\AppId\{твой AppID}\RemoteServerName="SERVER1"
HKEY_LOCAL_MACHINE\Software\CLASSES\AppId\{твой AppID}\RunAs="Interactive User"

-проверь, правильно ли там все написано.
... For the female of the species is more deadly than the male. -- Rudyard Kipling
Успехов,
Виталий.
Re[2]: DLL работающая на сервере
От: Аноним  
Дата: 15.04.04 04:16
Оценка:
Спасибо за информацию.
Я уже плюнул на COM+ и сделал через DCOM:
Создал сереверный EXE
Запустил его на сервере для регистрации
На клиенте с помощью clireg32 и файлов .VBR и .TLB зарегистрировал с указанием машины сервера
В настройках DCOM сервера завёл пользователей, которым можно запускать и работать с серверным компонентом и всё заработало.

Очевидно, что через COM+ у меня не получилось из-за "доступов", но где их настраивать я не знаю. Так что пока пусть работает по слегка устаревшей технологии.

PS: Извиняйте, если что-то написал по диалетанстки не правильно. (Возможно, путаюсь с понятиями DCOM и COM+)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.