Я отлаживаю эту Active X dll с помощью VB6 IDE. Я вижу, что выполнение доходит до попытки GetObjectContext. Этот метод всегда возвращает NOTHING.GetObjectContext ничего не возвращает в dll VB6 COM, вызванном из классического ASP
Это происходит на Windows 7 32 бит, 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 - я никогда не думал, что это произойдет! Это похоже на то, что его тянут обратно в темные века, очень грубо, что вызывает волдыри!
P.S. Я также создал компонент COM + и получил ASP таким образом объект, GetObjectContext возвращает пустой объект в этом случае, в котором нет объектов ASP. Так что это не поможет :-(
Я обнаружил, что описанное выше поведение связано с тем, что COM + ведет себя по-другому в отладке, чем в противном случае. При отладке он всегда будет возвращать фиктивный контекст - в нем нет полезных объектов. Данное решение ограничивает решение AnthonyWJones ниже и отлично решает проблему. – RobD