Программирование для интернета с использованием COM
Применение библиотеки COM DLL
Теперь, когда класс clsChair прошел модульное тестирование в тестовой структуре, он почти готов для использования в веб-приложении. Однако перед этим его нужно скомпилировать и разместить на несущем сервере. Выполните следующие действия.
- В Project Explorer (Диспетчер проектов) выберите проект ConfigSeat.
- Выберите команду File\Make ConfigSeat.dll (Файл\Создать ConfigSeat.dll ).
-
Откроется диалоговое окно Make Project (Создать проект), в котором нужно ввести имя файла и расположение новой библиотеки DLL. Измените имя файла или путь к файлу, если это необходимо, и нажмите на клавишу OK.
VB откомпилирует проект ConfigSeat и создаст файл .dll. Библиотека DLL автоматически зарегистрируется на узле, и ее можно будет сразу использовать. (О регистрации DLL речь пойдет в следующем подразделе.)
- Скопируйте новую библиотеку DLL на несущий сервер. Библиотека DLL не обязательно должна находиться в корневом веб-каталоге – ее можно расположить в любом месте узла. Рекомендуем выбрать папку вне корневого веб-каталога, специально предназначенную для хранения двоичных компонентов веб-приложения. Размещение двоичных COM-файлов в корневом каталоге представляет необоснованный риск, ведь при наличии ошибки в настройках веб-сервера пользователь получает возможность доступа и загрузки двоичного файла COM.
Использование regsvr32
После копирования библиотеки ConfigSeat.dll на сервер ее необходимо зарегистрировать или загрузить в службы компонентов как приложение COM+. Для регистрации компонента компания Microsoft разработала утилиту командной строки regsvr32.exe. Для работы с ней выполните следующие действия.
- Откройте окно командной строки или выберите Start\Run (Пуск\Выполнить).
- Введите regsvr32 <имя COM DLL> (где <имя COM DLL> – имя файла библиотеки COM DLL). Для файла библиотеки ConfigSeat.dll команда имеет вид regsvr32 ConfigSeat.dll, а курсор командной строки при выполнении команды должен находиться в той же папке, что и файл ConfigSeat.dll. При запуске regsvr32 из другого места расположения в команде следует указать полный путь к файлу .dll на сервере. Например, если файл ConfigSeat.dll расположен в папке C:\bin\, то команда имеет вид regsvr32 C:\bin\ConfigSeat.dll.
- Нажмите на клавишу Enter, чтобы зарегистрировать библиотеку COM DLL.
- В диалоговом окне появится сообщение об успешном завершении регистрации. Нажмите на клавишу OK для закрытия диалогового окна.
Для удаления библиотеки DLL COM или замены ее другой библиотекой следует аннулировать регистрацию библиотеки DLL и удалить соответствующий файл. При аннулировании регистрации из реестра удаляется запись CLSID для данной библиотеки, чем достигается "чистота" реестра и сокращается количество записей. Выполните те же самые шаги, с помощью которых проводилась регистрация, но используйте в команде ключ /u. Например, для аннулирования регистрации файла C:\bin\ConfigSeat.dll команда примет вид regsvr32 /u C:\bin\ConfigSeat.dll. Для просмотра ключей команды и информации о них выполните ее без каких-либо параметров: regsvr32.
При работе с regsvr32 не возникает каких-либо проблем. Это идеальное программное решение, не требующее управления и дополнительной информации о COM-объекте. Регистрация COM-объектов с помощью regsvr32 прекрасно подходит для приложения рабочего стола.
Использование служб компонентов
Установка объекта COM в службах компонентов более предпочтительна для веб-приложений по сравнению с использованием regsvr32, поскольку компоненты веб-приложении зачастую требуют последующего управления и обновления компонентов. Любое программное обеспечение, загруженное в службы компонентов, называется компонентом. Службы компонентов имеют больше возможностей по управлению компонентами, например:
- обновление компонента без прерывания его использования потребителем;
- предоставление статистической информации об использовании компонента;
- маскировка функционирования компонента под установленным набором входных данных пользователей;
- распределение функций компонента на другие узлы;
- откат транзакций базы данных.
Для загрузки объекта COM в службы компонентов сначала нужно создать приложение COM+. Приложение COM+ содержит один или более объектов или компонентов COM. Приложение COM+ в службах компонентов интерпретируется как идеальный (с точки зрения потребителя) развертываемый модуль. Приложение COM+ может использоваться другим процессом, или процесс, под которым выполняется приложение COM+, может быть предоставлен службам компонентов. Запуск (или остановка) приложения COM+ включает (или запрещает) использование всех его компонентов. Если наряду с надежными компонентами загружены ненадежные, то надежные компоненты нужно переместить в другое приложение COM+, которое не требует такого количества административных изменений, как приложение COM+ с проблемными библиотеками DLL. Такая стратегия минимизирует время простоя компонентов приложения, которое не будет "списано со счета" из-за ошибки в одном-единственном компоненте. Появляется возможность более четкого управления установкой компонента, изолированного от остальных надежных компонентов, пока его надежность не будет доказана.