Образец DCOM: вызов COM-объекта в службе Windows из нескольких клиентов
Обновлен: Ноябрь 2007
В образце DCOM показано, как вызвать COM-объект, реализованный в службе Windows, из нескольких клиентов, работающих на различных компьютерах. Образец состоит из нескольких частей.
DrawServ. Служба Windows, где реализован COM-объект.
ATLDraw. Клиент, который подключается к COM-объекту DrawServ.
DrawCtl. Версия элемента управления ATLDraw. Этот элемент содержит метод Connect (который принимает строковый параметр с именем компьютера), метод Disconnect и метод Clear.
MFCCont. Контейнер MFC для DrawCtl. Введите имя сервера (возможно, удаленного сервера) без кавычек и косых черт.
ATLCont. Контейнер ATL для DrawCtl. Введите имя сервера (возможно, удаленного сервера) без кавычек и косых черт.
Для работы этого образца необходимо, чтобы на всех компьютерах работала ОС Windows 2000 или более поздней версии.
Сравните этот образец с образцом DCOM из библиотеки ATL.
Примечание о безопасности. |
---|
Этот образец кода служит для демонстрации основных принципов и не предназначен для использования в приложениях или на веб-узлах, поскольку не может считаться примером наиболее безопасного кода. Корпорация Майкрософт не несет ответственности за случайные или косвенные убытки в случае использования образца кода не по назначению. |
Чтобы получить образцы и инструкции по их установке, выполните следующие действия.
В меню Справка среды Visual Studio выберите пункт Примеры.
Дополнительные сведения см. в разделе Поиск файлов примеров.
Самая последняя версия и полный список образцов доступны в Интернете на странице образцов Visual Studio 2008.
Кроме того, образцы находятся на жестком диске компьютера. По умолчанию образцы кода и файл Readme копируются в папку, находящуюся в папке \Program Files\Visual Studio 9.0\Samples\. Все образцы кода для экспресс-выпусков Visual Studio находятся в Интернете.
Построение и запуск образца
Построение и запуск этого образца
Откройте решение dcom.sln.
Постройте образцы DrawServ и ATLDraw.
Скопируйте файлы Drawserv.exe и Atldraw.exe на каждый компьютер, откуда будет запускаться образец. Зарегистрируйте сервер на каждом компьютере, выполнив DrawServ с аргументом командной строки /RegServer или -RegServer (регистр не учитывается). Пример.
DrawServ /RegServer
(Для работы этого примера необходимо зарегистрировать Register.dll.) На клиенте должен быть зарегистрирован код CLSID для сервера и библиотеки типов сервера, и поэтому необходимо скопировать сервер на каждый клиент.
Запустите службу на сервере, воспользовавшись значком "Службы" в панели управления.
С помощью приложения DCOMCNFG выберите на каждом клиенте свойства класса DrawServ. На вкладке Расположение установите флажок Запустить приложение на указанном компьютере и введите имя компьютера, где работает объект сервера. Снимите флажок Запустить приложение на данном компьютере.
Запустите образец ATLDraw и выберите сервер. Подключитесь к серверу из меню на каждом клиенте. Нарисуйте линию в окне клиента, перемещая мышь при нажатой левой кнопке. Нарисованная линия должна появиться на каждом клиенте, который подключен к тому же серверу. Также можно использовать команду Color из меню View, чтобы изменить цвет для каждого клиента.
Если возникнет проблема с подключением к удаленному серверу (например, если Tstcon32.exe не вызывает метод CoInitializeSecurity), запустите приложение DCOMCNFG на клиенте и перейдите на вкладку Свойства по умолчанию. Установите свойство Уровень проверки подлинности по умолчанию в значение "Нет", а свойство Уровень олицетворения по умолчанию — в значение "Анонимно".
См. также
Задачи
Образец DCOM: демонстрация удаленного вызова COM-объекта