Маршаллинг из ISAPI фильтра с получением в ASP.
От: Bailif  
Дата: 12.07.01 13:17
Оценка:
Привет!

Имеется ISAPI фильтр — внутри получаю кое-какие указатели на компоненты (Dispath). Далее эти указатели засовываются в промежуточный компонент(тут же его и создаём (ThreadingModel = 'Both' — для всех компонентов).
Потом маршалю указатель на этот компонент (как интерфейсный указатель) с помощью цепочки:

CoGetMarshalSizeMax
CreateStreamOnHGlobal
CoMarshalInterface(...,MSHLFLAGS_TABLESTRONG)

— потом кидаю область памяти с которой связан HGLOBAL с помощью Memory Mapped Files.

Затем имеется клиентский компонент — который демаршалит указатель на промежуточный компонент и предоставляет его на свет Божий с помощью property.

Так вот, если клиент использовать с помощью VB скрипта или C++. — Всё ОК.
Когда использую из под ASP — при попытке получения указателя на промежуточный
компонент — вылазит ACCESS_VIOLATION — судя по дебагу при попытке получить этот указатель.

— Есть подозрение, что это как-то связано с изолированностью процесса в котором выполняется ASP.
— Выставил в IIS Protection Security в Low — т.е. Всё(IIS, ISAPI, ASP) бежит в одном процессе —
не помогло.

Вопрос: В чём дело и как это лечится??? Пишите кто что думает...

Спасибо!!! хотя бы за то, что вы дочитали это до конца :))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.