Поделиться через


Образец 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.

a2ht8e6d.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

Этот образец кода служит для демонстрации основных принципов и не предназначен для использования в приложениях или на веб-узлах, поскольку не может считаться примером наиболее безопасного кода. Корпорация Майкрософт не несет ответственности за случайные или косвенные убытки в случае использования образца кода не по назначению.

Чтобы получить образцы и инструкции по их установке, выполните следующие действия.

  • В меню Справка среды Visual Studio выберите пункт Примеры.

    Дополнительные сведения см. в разделе Поиск файлов примеров.

  • Самая последняя версия и полный список образцов доступны в Интернете на странице образцов Visual Studio 2008.

  • Кроме того, образцы находятся на жестком диске компьютера. По умолчанию образцы кода и файл Readme копируются в папку, находящуюся в папке \Program Files\Visual Studio 9.0\Samples\. Все образцы кода для экспресс-выпусков Visual Studio находятся в Интернете.

Построение и запуск образца

Построение и запуск этого образца

  1. Откройте решение dcom.sln.

  2. Постройте образцы DrawServ и ATLDraw.

  3. Скопируйте файлы Drawserv.exe и Atldraw.exe на каждый компьютер, откуда будет запускаться образец. Зарегистрируйте сервер на каждом компьютере, выполнив DrawServ с аргументом командной строки /RegServer или -RegServer (регистр не учитывается). Пример.

    DrawServ /RegServer
    

    (Для работы этого примера необходимо зарегистрировать Register.dll.) На клиенте должен быть зарегистрирован код CLSID для сервера и библиотеки типов сервера, и поэтому необходимо скопировать сервер на каждый клиент.

  4. Запустите службу на сервере, воспользовавшись значком "Службы" в панели управления.

  5. С помощью приложения DCOMCNFG выберите на каждом клиенте свойства класса DrawServ. На вкладке Расположение установите флажок Запустить приложение на указанном компьютере и введите имя компьютера, где работает объект сервера. Снимите флажок Запустить приложение на данном компьютере.

  6. Запустите образец ATLDraw и выберите сервер. Подключитесь к серверу из меню на каждом клиенте. Нарисуйте линию в окне клиента, перемещая мышь при нажатой левой кнопке. Нарисованная линия должна появиться на каждом клиенте, который подключен к тому же серверу. Также можно использовать команду Color из меню View, чтобы изменить цвет для каждого клиента.

  7. Если возникнет проблема с подключением к удаленному серверу (например, если Tstcon32.exe не вызывает метод CoInitializeSecurity), запустите приложение DCOMCNFG на клиенте и перейдите на вкладку Свойства по умолчанию. Установите свойство Уровень проверки подлинности по умолчанию в значение "Нет", а свойство Уровень олицетворения по умолчанию — в значение "Анонимно".

См. также

Задачи

Образец DCOM: демонстрация удаленного вызова COM-объекта

Ссылки

Compiler COM Support

Другие ресурсы

Образцы поддержки модели COM в компиляторе