GetObjectContext在VB6 COM dll中不返回任何内容,从经典ASP调用

时间:2011-04-04 15:16:27

标签: iis-7 windows-7 vb6 asp-classic httpcontext

我正在使用VB6 IDE调试此Active X dll。我可以看到执行得到GetObjectContext的尝试。此方法始终返回NOTHING。

这发生在Windows 7 32位,IIS 7上。(该应用程序在其他位置工作,其中一个是带有IIS 7的Windows Server 2008)

我已广泛使用Google搜索并发现许多与COM +有关的引用,但我的方案中没有涉及COM +。只是来自已注册dll的普通旧Server.CreateObject。

我有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对象。所以这没有帮助: - (

2 个答案:

答案 0 :(得分:2)

我发现在IIS中使用VB6组件的COM +方法有点不稳定。我将它添加到我想在ASP :: -

中实例化的VB6类中
Private moScriptCtx As ScriptingContext

Public Sub OnStartPage(SC As ScriptingContext)

    Set moScriptCtx = SC

End Sub

您现在可以访问请求,响应,服务器等作为moScriptCtx对象的属性。

您可能想知道如何首先致电OnStartPage。在CreateObject执行期间,您不会自动为您执行此操作。

答案 1 :(得分:2)

我知道这有点晚了,但我遇到了类似的问题,这为我解决了这个问题:

线程:通过COM +

访问Request对象时出现问题

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

摘要:在COM +组件中打开“允许IIS内部属性”。