GetObjectContext ничего не возвращает в VB6 COM dll, вызванном из классического ASP - PullRequest
2 голосов
/ 04 апреля 2011

Я отлаживаю эту Active X dll с помощью IDE VB6.Я вижу, как выполнение доходит до попытки GetObjectContext.Этот метод всегда возвращает НИЧЕГО.

Это происходит в 32-разрядной Windows 7, IIS 7. (Приложение работает в других местах, одним из которых является Windows Server 2008 с IIS 7)

Я активно гуглил и нашел много ссылок на это, касающихся COM +, но в моем сценарии нет НИКАКОГО COM +.Просто старый старый Server.CreateObject из зарегистрированной dll.

У меня есть ASP-код следующим образом

SET objCalendar = Server.CreateObject("SSYSDEV.Calendar")
objCalendar.BuildCalendar("ADMINUSERS")
SET objCalendar = Nothing

Строки проблемы запрашиваемой функции в dll:

Dim objHttpRequest As ASPTypeLibrary.Request
Set objHttpRequest = GetObjectContext.Item("Request")

Любая помощь или предложения, как всегда, будут высоко оценены.

Я все еще переживаю шок от работы с VB6 - я никогда не думал, что это произойдет!Это похоже на то, как если бы вас перетащили обратно в темные времена, очень грубым способом, который вызывает волдыри!

PS Я также настроил компонент COM +, и чтобы ASP получал объект таким образом, GetObjectContext возвращает пустой объект вэто случай, в котором нет объектов ASP.Так что это не поможет: - (

Ответы [ 2 ]

2 голосов
/ 08 сентября 2011

Я знаю, что это немного поздно, но у меня была похожая проблема, и это решило ее для меня:

Тема: Проблема с доступом к объекту запроса через COM +

http://forums.iis.net/t/1146404.aspx

Сводка: включите «Разрешить внутренние свойства IIS» в компоненте COM +.

2 голосов
/ 07 апреля 2011

Я обнаружил, что подход COM + к использованию компонентов VB6 в IIS немного ненадежен.Я добавляю это в класс VB6, который хочу скопировать в ASP :: -

Private moScriptCtx As ScriptingContext

Public Sub OnStartPage(SC As ScriptingContext)

    Set moScriptCtx = SC

End Sub

Теперь вы можете обращаться к Запросу, Ответу, Серверу и т. Д. Как к свойствам объекта moScriptCtx.

Вам может быть интересно, как вы звоните OnStartPage в первую очередь.Вы не ASP автоматически делаете это для вас во время выполнения CreateObject.

...