После прочтения ряда различных статей и не найдя ничего особенно убедительного, что пошагово меня ведет через процесс, я обратился за помощью.
Сценарий
Мой клиент имеет опыт разработки только для ASP Classic . Недавно они приобрели учетную запись для сайта, изначально написанного на ASP.NET. Они превращают сайт во что-то, что они могут активно поддерживать, но изначально на сайте был обработчик изображений, который брал динамически изменяющиеся данные об уровнях воды и выводил изображение, содержащее графическое представление этих данных. Требуется разработать библиотеку взаимодействия COM , которую можно зарегистрировать на сервере и вызвать с помощью CreateObject, чтобы сгенерировать тот же массив байтов изображения для вывода с помощью Response.BinaryWrite . Библиотека COM-взаимодействия должна быть зарегистрирована на удаленном сайте на Windows 2000 Server, и я не могу делать никаких предположений относительно их доступа к regasm / gacutil для выполнения этой задачи.
Сложность
Я построил библиотеку классов, создав проект Class Library в Visual Studio 2010, выбрав «COM Class» в шаблоне, и вставляю свой код для генерации класса с единственным общедоступным методом для возврата байтового массива при задании целого числа (ну, перечислитель, но все равно). К сожалению, даже на моей собственной машине разработки после создания библиотеки и регистрации (regasm) и кэширования сборки (gacutil) я не могу позвонить через классический ASP для создания экземпляра объекта, получив вместо этого ActiveX " компонент не может создать объект "ошибка. И, конечно же, на сайте сервера DLL-файл не может быть зарегистрирован, и ответ будет: «Требуемый модуль не найден».
Ресурсы, которые я использовал
Я уже просмотрел следующие статьи и не нашли ответов, которые мне нужны:
То, что мне нужно
По сути, мне нужно немного потрудиться, чтобы шаг за шагом понять, что нужно сделать, чтобы выполнить требований и правильно создать модуль взаимодействия COM + в Visual Studio 2010. Создание фактического объекта класса не так уж и сложно.
Однако ни в одной из статей, которые я просмотрел, действительно не обсуждались варианты проекта или процедуры сборки с Visual Studio 2010 или .NET 4.0 Framework, и ни одна из них не обсуждалась, если есть особые соображения по развертыванию в более старых системах, таких как Windows Server 2000 и фактическая регистрация библиотеки в системе с, скажем, только regsvr32 под рукой.