Создание клиентского или серверного приложения DCOM с помощью Visual Basic

В этой статье описывается, как создать, упаковать и развернуть клиентское или серверное приложение распределенной объектной модели компонентов (DCOM) с помощью Visual Basic.

Исходная версия продукта: Visual Basic
Исходный номер базы знаний: 266717

Итоги

В этой статье показано, как создать, упаковать и развернуть клиентское или серверное приложение DCOM с помощью Visual Basic. Чтобы создать клиентское или серверное приложение DCOM, вам потребуется выпуск Enterprise Visual Basic. Корпорация Майкрософт предполагает, что читатель уже знаком с созданием клиентских и серверных приложений, работающих на одном компьютере.

Дополнительная информация

Вам не нужно изменять код, чтобы клиентское приложение мог создать экземпляр удаленного сервера с помощью DCOM. Разница заключается в том, как упаковывать и развертывать клиент. Кроме того, существуют некоторые параметры безопасности, которые необходимо сделать после установки клиента и сервера. Эти параметры можно сделать с помощью служебной программы Dcomcnfg.

Ниже показано, как распространять и настраивать клиентское или серверное приложение. Назовите сервер DCOMDemo_Svr и назовите DCOMDemo_Cli клиента. Создайте отдельную папку для каждой из них. Для этой статьи вызовите эти папки c:\DCOMDemo\Server and c:\DCOMDemo\Client.

Создание сервера

  1. Запустите новый проект Visual Basic. В диалоговом окне "Создать проект" выберите ActiveX EXE и нажмите кнопку "Открыть". Класс1 создается по умолчанию.

  2. Добавьте следующий код в модуль Class1:

    Public Function ServerTime() As String
        ServerTime = Time
    End Function
    
  3. В меню "Проект" выберите параметр "Свойства проекта" и перейдите на вкладку "Общие".

  4. В поле "Имя проекта" введите DCOMDemo_Svr.

  5. В поле "Описание проекта" введите DCOMDemo_Svr — Сервер. Проверьте параметр "Автоматическое выполнение ".

    Примечание.

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

  6. Перейдите на вкладку "Компонент" и установите флажок "Удаленные файлы сервера".

    Примечание.

    При проверке этого параметра компилятор Visual Basic создает файлы VBR и TLB, необходимые для упаковки клиентских приложений, использующих этот сервер. Эти файлы содержат записи реестра, которые необходимо включить на клиентский компьютер.

  7. Закройте диалоговое окно "Свойства проекта".

  8. В меню "Файл" выберите команду "Сохранить как", а затем сохраните этот проект в меню c:\DCOMDemo\Server folder"Файл".

  9. В меню "Файл" выберите "Сделать DCOMDemo_Svr" и скомпилируйте сервер.

  10. В меню "Проект" выберите параметр "Свойства проекта" и перейдите на вкладку "Компонент".

  11. На вкладке "Компонент" выберите параметр "Совместимость версий", выберите параметр "Двоичная совместимость ", а затем сделайте проект двоичным совместимым с созданным исполняемым файлом сервера (DCOMDemo_Svr.exe). Выбрав этот параметр, вы гарантируете, что все идентификаторы GUID сохраняются одинаково при повторной компиляции сервера.

Создание клиента

  1. В меню "Файл" выберите пункт "Создать проект", выберите "Стандартный EXE" и нажмите кнопку "ОК". Форма1 создается по умолчанию.

  2. В меню "Проект" выберите параметр "Свойства проекта" и перейдите на вкладку "Общие".

  3. В поле "Имя проекта" введите DCOMDemo_Cli.

  4. В поле "Описание проекта" введите DCOMDemo_Cli Project — Client.

  5. В меню "Проект" выберите "Ссылки". В списке доступных ссылок выберите DCOMDemo_Svr — Сервер.

  6. Поместите кнопку команды в Form1 и измените подпись кнопки на Run.

  7. Поместите следующий код в событие нажатия кнопки:

    Dim MyObj As DCOMDemo_Svr.Class1
    
    On Error GoTo err1
    
    Set MyObj = CreateObject("DCOMDemo_Svr.Class1")
    MsgBox "Server Time=" & MyObj.ServerTime & " Client Time=" & Time
    
    Exit Sub
    err1:
    MsgBox "Connection failed: Error " & Err.Number & " - " & Err.Description
    
  8. В меню "Файл" выберите "Сохранить как", а затем сохраните проект в папку c:\DCOMDemo\Clientклиента.

  9. Нажмите клавишу F5, чтобы запустить клиент в интегрированной среде разработки и протестировать его.

  10. В меню "Файл" выберите "Сделать DCOMDemo_Cli", чтобы скомпилировать клиент, а затем закройте Visual Basic.

Упаковка сервера

Используйте мастер упаковки и развертывания, чтобы упаковать сервер для распространения как обычно. Сервер создается удаленным клиентом с помощью DCOM. При создании пакета для сервера появится диалоговое окно с запросом, будет ли этот сервер использоваться в качестве сервера удаленной автоматизации и если вы хотите включить файлы поддержки для этой цели. Просто нажмите кнопку "Нет ", так как DCOM не является удаленной автоматизацией. Удаленная автоматизация — это более старая технология, которая была заменена DCOM.

Упаковка клиента

При упаковке клиента необходимо выполнить определенные действия, учитывая, что сервер не работает на том же компьютере, что и клиент. Изменения, внесенные в пакет клиента, гарантируют, что установлен только файл библиотеки типов (TLB-файл), а некоторые дополнительные записи реестра включены вместо исполняемого файла сервера, который не нужен на компьютере клиента, так как он не будет выполняться там.

Упаковав клиент, выполните следующие действия:

  1. Запустите мастер упаковки и развертывания, а затем выберите проект клиента.

  2. Нажмите кнопку "Пакет ". В диалоговом окне "Тип пакета" выберите "Стандартный пакет установки" и нажмите кнопку "Далее".

  3. В диалоговом окне "Папка пакета" выберите папку для хранения пакета и нажмите кнопку "Далее". В этом случае это c:\DCOMDemo\Client\Package.

    Примечание.

    Вы можете получить диалоговое окно с сообщением о том, что для сервера нет сведений о зависимости. Нажмите кнопку "ОК ", так как этот сервер не имеет зависимостей.

    Теперь вы должны находиться в диалоговом окне "Включенные файлы".

  4. Отмените выбор исполняемого файла сервера, DCOMDemo_Svr.exe, так как вы не хотите распространять исполняемый файл сервера, а затем нажмите кнопку "Добавить".

  5. Измените поле со списком типов на удаленные файлы сервера (*.vbr).

  6. Наведите указатель на папку, в которой у вас есть проект сервера (в данном случае c:\DCOMDemo\Server), и выберите связанный файл VBR DCOMDemo_Svr.VBR. Нажмите кнопку "Открыть", а диалоговое окно "Добавить файл " закрывается.

    Примечание.

    Эти два файла включены, DCOMDemo_Svr.VBR и DCOMDemo_Svr.TLB. Нажмите кнопку Далее. В диалоговом окне "Удаленные серверы" можно определить имя компьютера (net Address), на котором работает сервер. Обычно это поле сохраняется пустым, так как вы можете заранее не знать, где будет установлен сервер. Если вы сохраняете его пустым, вам будет предложено при установке клиента. Для этого примера сохраните его пустым.

  7. Чтобы продолжить, нажмите кнопку Далее . Теперь можно продолжить стандартные процедуры для мастера упаковки и развертывания. В этом случае просто нажмите кнопку "Рядом со всеми остальными диалоговым окнами".

Установка сервера

Установите сервер на компьютере, на котором вы хотите запустить его, с помощью созданного ранее пакета распространения. Если вы хотите использовать компьютер разработки для запуска сервера, его не нужно установить, так как Visual Basic делает регистрацию для вас при компиляции сервера.

Установка клиента

Установите клиент на компьютере, на котором вы хотите запустить его, с помощью созданного ранее пакета распространения. Так как этот клиент использует сервер DCOM и вы оставили фактическое расположение сервера пустым при создании пакета распространения, теперь необходимо указать это расположение. Когда программа установки запрашивает это расположение, укажите имя компьютера, на котором установлен сервер.

Настройка безопасности сервера

Если сервер установлен на компьютере Windows NT или Windows 2000, необходимо настроить для него безопасность. Это можно сделать с помощью Dcomcnfg, как показано в следующих шагах, что предполагает, что как клиентские, так и серверные компьютеры являются частью домена, и пользователь, вошедший в систему на клиентский компьютер, вошел в систему как пользователь домена. Предлагаемые параметры — это только одна возможная конфигурация. Они являются универсальными и предоставляют широкий доступ к серверу. Помните, что это просто пример. При развертывании реальных приложений и безопасности для вашей среды следует выбрать более строгие параметры. Кроме того, если компьютер, используемый для тестирования этого примера сервера, используется для запуска других серверов, запишите текущие параметры перед внесением следующих изменений и вернитесь к исходным параметрам сразу после завершения тестов.

  1. На серверном компьютере нажмите кнопку "Пуск " и нажмите кнопку "Выполнить". В диалоговом окне "Запуск" введите Dcomcnfg и нажмите кнопку "ОК". Чтобы запустить Dcomcnfg, необходимо иметь права администратора.
  2. Выберите вкладку "Свойства по умолчанию" и убедитесь, что на этом компьютере установлен флажок "Включить распределенный COM".
  3. Задайте уровень проверки подлинности по умолчанию для подключения и задайте для определения уровня олицетворения по умолчанию.
  4. Перейдите на вкладку "Безопасность по умолчанию".
  5. Нажмите кнопку "Изменить значение по умолчанию" на панели разрешений доступа по умолчанию.
  6. Убедитесь, что все пользователи и система включены в список с правами разрешить доступ. Если они нет, можно использовать кнопку "Добавить ", чтобы добавить их в список. Нажмите кнопку "ОК ", когда список будет завершен.
  7. Нажмите кнопку "Изменить значение по умолчанию" на панели разрешений запуска по умолчанию.
  8. Убедитесь, что все пользователи и система включены в список с разрешениями на запуск. Если они нет, нажмите кнопку "Добавить ", чтобы добавить их в список. Нажмите кнопку "ОК ", когда список будет завершен.
  9. Выберите вкладку "Приложения" , выделите сервер, DCOMDemo_Svr.Class1 и нажмите кнопку "Свойства ".
  10. Перейдите на вкладку "Общие" , установите значение "Уровень проверки подлинности" по умолчанию и перейдите на вкладку "Расположение ". Единственным вариантом, который установлен, является запуск приложения на этом компьютере.
  11. Выберите вкладку "Безопасность" и убедитесь, что выбраны разрешения на доступ по умолчанию и параметры разрешений запуска по умолчанию.
  12. Выберите вкладку "Удостоверение", установите флажок запуска пользователя, нажмите кнопку "ОК", чтобы закрыть диалоговое окно "Свойства сервера", а затем нажмите кнопку "ОК", чтобы закрыть Dcomcnfg. Как видно, тестовый сервер использует все параметры по умолчанию. При развертывании собственных серверов следует определить параметры, относящиеся к приложению. Все пользовательские параметры имеют приоритет над параметрами по умолчанию.

Теперь вы готовы протестировать сервер. На клиентском компьютере запустите клиент и нажмите кнопку "Выполнить ". Появится окно сообщения, указывающее время сервера. Если вы не можете проверить этот пример успешно, см. статью по устранению неполадок, Q269330, указанную в разделе "Ссылки".