经典ASP和COM DLL没有在Server 2008 R2中工作(Microsoft VBScript运行时错误“800a01ad”ActiveX组件不能创建对象) [英] Classic ASP and COM DLL Does not work in Server 2008 R2 (Microsoft VBScript runtime error '800a01ad' ActiveX component can't create object )

查看:719
本文介绍了经典ASP和COM DLL没有在Server 2008 R2中工作(Microsoft VBScript运行时错误“800a01ad”ActiveX组件不能创建对象)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在2010年已经执行下列步骤视觉工作室创建一个dll:

I have created a dll in Visual Studios 2010. I have performed the following steps:


  1. 这是一个密钥对(SNK文件),它关联考虑建立一个强大的名字

  1. Given build a strong name by associating a key pair (snk file) to it

由于每一类个体的ProgID和GUID

Given each class an individual ProgID and GUID

由于这是我确信,使用位于FrameWork64 / v4xxxx文件夹中的RegAsm.exe一个64位的DLL。我用RegAsm.exe / codeBase的ECE2.dll

As it is a 64 bit DLL I made sure that Used the RegAsm.exe located in the 'FrameWork64/v4xxxx' folder. I used RegAsm.exe /codebase ECE2.dll

我跑'GACUTIL -i对DLL

I ran 'gacutil -i' on the DLL

所有这些步骤都取得了成功。 DLL和ASP页面,我使用它存储在intetpub / wwwroot文件。

All of these steps have been successful. The DLL and the ASP page I am using it on are stored in intetpub/wwwroot.

现在,该DLL的正常工作的我的笔记本电脑和家用电脑上(都运行Windows 7旗舰版)。现在我试图让它在的Windows Server 2008 R2 工作。
这是我遇到的问题。

Now, the DLL works fine on my laptop and home computer (both running Windows 7 Ultimate). I am now trying to get it to work on Windows Server 2008 R2. This is where I'm having the problem.

我完成相同的步骤如上述,所有这些都是成功的。然而,当我运行ASP页面,我收到一条错误消息,这将表明它没有被注册,即使它有:

I complete the same steps as above, all of which are successful. However when I run the ASP page, I'm getting an error message which would suggest it has NOT been registered, even though it has:

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

Microsoft VBScript runtime error '800a01ad' ActiveX component can't create object: 'ECE2.CSV_DataSet'

我想这可能是在IIS中,需要更改设置。请注意,这台服务器已经配置为允许经典的ASP页面,所以我知道这是不是。
谁能给我任何表示,是否有特定的设置,我需要在服务器发生变化,或是否有额外的安全箍我要跳通过得到它的工作Server 2008中,我不需要在Windows上做7旗舰版?

I thought it might be a setting in IIS which needs changing. Note that this server is already configured to allow Classic ASP pages, so I know it is not that. Could anyone give me any indication as to whether there is a particular setting I need to change in Server, or whether there are extra security hoops I have to jump through to get it working on Server 2008 which I don't need to do on Windows 7 Ultimate?

推荐答案

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

Check the advanced settings of the application pool that this ASP application runs in. Does it have "Enable 32-Bit Application" set to True. If so then thats your problem you can't instantiate a 64 bit dll under a 32 bit pool.

有没有你认为这是一个64位DLL,而不是简单的任何CPU的理由?如果不是regasm它也用作一个32位的dll

Is there a reason you consider this to be a "64bit dll" instead of simple "Any CPU"? If not regasm it also for use as a 32 bit dll.

否则,你将需要不运行这个ASP应用程序启​​用32位应用程序,以便它运行64位,但随后有可能是这是摆在首位设置的原因。因此,下一步是创建不具有此设置,让你的ASP运行的一部分作为该池中一个单独的应用程序的新应用程序池。

Otherwise you will need to run this ASP application without "Enable 32-Bit application" so that it runs as 64 bit but then there is probably a reason this is set in the first place. So the next step is to create a new application pool that doesn't have this setting and make a portion of your ASP run as a seperate application in this pool.

这篇关于经典ASP和COM DLL没有在Server 2008 R2中工作(Microsoft VBScript运行时错误“800a01ad”ActiveX组件不能创建对象)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆