经典 ASP 和 COM DLL 在服务器 2008 R2 中不起作用(Microsoft VBScript 运行时错误'800a01ad' ActiveX 组件无法创建对象)



我在Visual Studios 2010中创建了一个dll。我已经执行了以下步骤:

  1. 给定通过将密钥对(snk文件)关联到来构建强名称

  2. 给每个类一个单独的ProgID和GUID

  3. 由于它是一个64位DLL,我确保使用了位于"FrameWork64/v4xxxx"文件夹中的RegAsm.exe。我使用了RegAsm.exe/codebase ECE2.dll

  4. 我在DLL 上运行了"gautil-I"

所有这些步骤都取得了成功。DLL和我正在使用它的ASP页面存储在intelpub/wwwroot中。

现在,DLL在我的笔记本电脑和家用电脑上运行良好(均运行Windows7 Ultimate)。我现在正试图让它在Windows Server 2008 R2上运行。这就是我的问题所在。

我完成了与上面相同的步骤,所有这些都是成功的。然而,当我运行ASP页面时,我收到一条错误消息,表明它还没有注册,尽管它有:

Microsoft VBScript运行时错误"800a01ad"ActiveX组件不能创建对象:"ECE2.CSV_DataSet"

我想可能是IIS中的一个设置需要更改。注意,这个服务器已经配置为允许经典ASP页面,所以我知道它不是那样的。有人能告诉我,我是否需要在服务器中更改特定的设置,或者我是否需要跳过额外的安全障碍才能在Server 2008上运行,而我在Windows 7 Ultimate上不需要这样做吗?

检查此ASP应用程序运行的应用程序池的高级设置。它是否将"启用32位应用程序"设置为True。如果是这样,那么这就是你的问题——你不能在32位池下实例化一个64位dll。

你认为这是一个"64位dll"而不是简单的"任何CPU"有什么原因吗?如果没有regasm,它也可以用作32位dll。

否则,您将需要在没有"启用32位应用程序"的情况下运行此ASP应用程序,使其以64位运行,但这可能是最初设置的原因。因此,下一步是创建一个没有此设置的新应用程序池,并使ASP的一部分在此池中作为单独的应用程序运行。

相关内容

  • 没有找到相关文章

最新更新