Simple Object и ActiveXServerComponent
От: BoikoRoman  
Дата: 10.05.02 08:08
Оценка:
Здравствуйте. Есть вопрос (точнее 2).
Имеется in-proc COM компонент, выполняет массу полезных вещей и построен на основе Simple Object. Прекрасно работает в MFC приложении, но не хочет создаваться в ASP сценарии. Для пробы создал COM компонент на основе ActiveXServerComponent он может использоваться и в MFC приложении и в ASP сценарии.
Вопрос 1: Чем отличаются объекты созданные на базе Simple Object и ActiveXServerComponent.
Вопрос 2: Как теперь использовать имеющийся объект в ASP сценарии.
За ранее благодарен.
Re: Simple Object и ActiveXServerComponent
От: George_Seryakov Россия  
Дата: 10.05.02 14:05
Оценка:
Здравствуйте BoikoRoman, Вы писали:

BR>Имеется in-proc COM компонент, выполняет массу полезных вещей и построен на основе Simple Object. Прекрасно работает в MFC приложении, но не хочет создаваться в ASP сценарии.


Должен. Проверь, что интерфейс(ы) дуальные. Не знаешь, как — предъяви idl.
GS
Re: Simple Object и ActiveXServerComponent
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.05.02 16:31
Оценка:
Здравствуйте BoikoRoman, Вы писали:

BR>Имеется in-proc COM компонент, ... не хочет создаваться в ASP сценарии.


А что при этом выдается? У нас все тоже самое работает.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Simple Object и ActiveXServerComponent
От: BoikoRoman  
Дата: 13.05.02 08:18
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Здравствуйте BoikoRoman, Вы писали:


BR>>Имеется in-proc COM компонент, ... не хочет создаваться в ASP сценарии.


VD>А что при этом выдается? У нас все тоже самое работает.


Объект не может быть создан.

Привожу пример VBS файла который работает без проблем, я ожидал что этот же текст при размещении на странице тоже будет работать без проблем, но не тут то было.

'Create Object
Set ACOM = CreateObject("AmziEngineCOM.LSEAmziEngineCOM")

Dim res

'Init object
res = ACOM.Init("", "")

P.S. Кстати у меня Service Pack 4. Может в этом причина?

Большое спасибо.
Re[2]: Simple Object и ActiveXServerComponent
От: BoikoRoman  
Дата: 13.05.02 08:21
Оценка:
Здравствуйте George_Seryakov, Вы писали:

GS>Здравствуйте BoikoRoman, Вы писали:


BR>>Имеется in-proc COM компонент, выполняет массу полезных вещей и построен на основе Simple Object. Прекрасно работает в MFC приложении, но не хочет создаваться в ASP сценарии.


GS>Должен. Проверь, что интерфейс(ы) дуальные. Не знаешь, как — предъяви idl.


Привожу пример VBS файла который работает без проблем, я ожидал что этот же текст при размещении на странице тоже будет работать без проблем, но не тут то было.

'Create Object
Set ACOM = CreateObject("AmziEngineCOM.LSEAmziEngineCOM")

Dim res

'Init object
res = ACOM.Init("", "")

Из этого следует,что IDispatch компонент поддерживает.

P.S. Кстати у меня Service Pack 4. Может в этом причина?

Большое спасибо.
Re[3]: Simple Object и ActiveXServerComponent
От: George_Seryakov Россия  
Дата: 13.05.02 13:18
Оценка:
Здравствуйте BoikoRoman, Вы писали:

BR>Привожу пример VBS файла который работает без проблем, я ожидал что этот же текст при размещении на странице тоже будет работать без проблем, но не тут то было.


BR>'Create Object 
BR>Set ACOM = CreateObject("AmziEngineCOM.LSEAmziEngineCOM") 

BR>'Init object 
BR>res = ACOM.Init("", "")


BR>Из этого следует,что IDispatch компонент поддерживает.


Следует.

Попробуй в ASP Server.CreateObject вместо CreateObject. Попробуй проследить (не)создание компонента отладчиком (используй DebugBreak()). Возможно, что твой компонент пытается делать что-то не очень стандартное, что ему удается под VBS и не удается под ASP. Что?
GS
Re[4]: Simple Object и ActiveXServerComponent
От: BoikoRoman  
Дата: 13.05.02 13:46
Оценка:
Здравствуйте George_Seryakov, Вы писали:

GS>Здравствуйте BoikoRoman, Вы писали:


BR>>Привожу пример VBS файла который работает без проблем, я ожидал что этот же текст при размещении на странице тоже будет работать без проблем, но не тут то было.


GS>
BR>>'Create Object 
BR>>Set ACOM = CreateObject("AmziEngineCOM.LSEAmziEngineCOM") 

BR>>'Init object 
BR>>res = ACOM.Init("", "") 
GS>


BR>>Из этого следует,что IDispatch компонент поддерживает.


GS>Следует.


GS>Попробуй в ASP Server.CreateObject вместо CreateObject. Попробуй проследить (не)создание компонента отладчиком (используй DebugBreak()). Возможно, что твой компонент пытается делать что-то не очень стандартное, что ему удается под VBS и не удается под ASP. Что?


Какие есть ограничения на использование чего — либо в COM компонентах под ASP? Где это можно узнать?

"Нестандартное" — это работа с ядром логической машины вывода.

Компонент имеет переменную-член класса являющегося оболочкой для библиотечных функций. Этот класс как и библиотека поставляется Amzi и реализует ядро AmziProlog!
Нормально работает без COM, внутри COM но не в ASP.
Re[5]: Simple Object и ActiveXServerComponent
От: George_Seryakov Россия  
Дата: 13.05.02 14:08
Оценка:
Здравствуйте BoikoRoman, Вы писали:

BR>Какие есть ограничения на использование чего — либо в COM компонентах под ASP? Где это можно узнать?


Обычно про это узнается опытным путем. Вот как ты сейчас.

BR>Компонент имеет переменную-член класса являющегося оболочкой для библиотечных функций. Этот класс как и библиотека поставляется Amzi и реализует ядро AmziProlog!

BR>Нормально работает без COM, внутри COM но не в ASP.

Скорее всего он и зарубает тебе инициализацию. Выясни, как именно (коды возврата? исключения?) и копай в этом направлении.

А почему переменная-член? Вроде, у Amzi есть COM object для ASP.
GS
Re[6]: Simple Object и ActiveXServerComponent
От: BoikoRoman  
Дата: 14.05.02 08:09
Оценка:
Здравствуйте George_Seryakov, Вы писали:

GS>Здравствуйте BoikoRoman, Вы писали:


BR>>Какие есть ограничения на использование чего — либо в COM компонентах под ASP? Где это можно узнать?


GS>Обычно про это узнается опытным путем. Вот как ты сейчас.


BR>>Компонент имеет переменную-член класса являющегося оболочкой для библиотечных функций. Этот класс как и библиотека поставляется Amzi и реализует ядро AmziProlog!

BR>>Нормально работает без COM, внутри COM но не в ASP.

GS>Скорее всего он и зарубает тебе инициализацию. Выясни, как именно (коды возврата? исключения?) и копай в этом направлении.


GS>А почему переменная-член? Вроде, у Amzi есть COM object для ASP.


Более подробно.
Amzi поставляет DLL (a_mw3d.dll) с реализацией функций ядра пролог машины.
Amzi поставляет файл класса для С++, VB, компонент для Delphi.

C++ класс похож на обычную упаковку.

Внутри компонента присутствует примерно следующее:
LSEAmzi m_LSEAmziEngine;



Почему же этот COM работает везде кроме ASP?

Спасибо за участие.
Re: Simple Object и ActiveXServerComponent
От: BoikoRoman  
Дата: 15.05.02 10:22
Оценка:
Здравствуйте BoikoRoman, Вы писали:

BR>Здравствуйте. Есть вопрос (точнее 2).

BR>Имеется in-proc COM компонент, выполняет массу полезных вещей и построен на основе Simple Object. Прекрасно работает в MFC приложении, но не хочет создаваться в ASP сценарии. Для пробы создал COM компонент на основе ActiveXServerComponent он может использоваться и в MFC приложении и в ASP сценарии.
BR>Вопрос 1: Чем отличаются объекты созданные на базе Simple Object и ActiveXServerComponent.
BR>Вопрос 2: Как теперь использовать имеющийся объект в ASP сценарии.
BR>За ранее благодарен.

Поясню:

Объект создается на странице, выполняет вычисления. Результат оформляется и отсылается.

Код создания следующий:

<%@ Language=VBScript %>
<%
set ACOM = CreateObject("AmziEngineCOM.LSEAmziEngineCOM")

ACOM.Init "", ""

%>

P.S.: Провел эксперимент с размещением кода создания и использования на странице (взято из html файла):

<BODY>
<SCRIPT language = VBScript>
'Create Object
Dim ACOM

MsgBox "Start"

Set ACOM = CreateObject("AmziEngineCOM.LSEAmziEngineCOM")

MsgBox "CreateObject"


MsgBox ACOM.GetLastError, 0, "GetLastError"

Dim res

'Init object
res = ACOM.Init("", "")

MsgBox "Init"

</SCRIPT>

В таком сценарии объект создается и проблем по его использованию (то что в примере, на практике требуется больше) нет никаких.

Правда этот сценарий клиентский и будет выполняться на клиенте и маловероятно, что мой компонент окажется у клиента.

Мне же нужно регистрировать, создавать и использовать в серверном сценарии.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.