经典中的自定义 .net 程序集 ASP- 错误 0177:80004003

Custom .net assembly in classic ASP- error 0177 : 80004003

我已经为此工作了好几天并取得了进展,但它仍然没有按照我需要的方式工作。

首先,这个项目正在使用一个现有的大型网站(100,000 多行代码分布在至少 200 多个文件中),用 classic asp(vbscript ) 并转换为 .NET 框架。

现有代码大部分使用 VBScript classes,我的计划是模仿 .NET 程序集中已经定义的十几个 classes新的 .NET 版本和现有的 Classic ASP 页面都可以使用 - 通过 COM+。

我已经创建了第一个 class 定义,在 .NET 中进行了复制,它在开发服务器上的 Test.ashx 页面中有效(当我在浏览器中转到该页面时,我得到预期输出)。但是我在调​​用 set obj = server.CreateObject("MyLibrary.MyClass").

的行的 Test.asp 页面 Server object error 'ASP 0177 : 80004003' 中收到错误调用

我已经像这样通过 regasm 注册了自定义 DLL regasm "C:\inetpub\siteroot\bin\MyLibrary.dll" /tlb /codebase,它似乎工作正常(该库按预期出现在服务器的组件服务中,具有定义的方法,一切似乎都很好。

我的直觉告诉我,这要么是 32-bit/64-bit 问题,要么是权限问题。这些天我尝试了很多不同的事情,多到无法一一列举,但如果有任何建议,我将不胜感激。

备注:

第一个 class 的 .vb 文件的顶部如下

Imports System
Imports System.Web
Imports System.Web.HttpContext
Imports System.String
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Runtime.InteropServices
Imports System.EnterpriseServices

<Assembly: ApplicationName("MyLibrary")>
<Assembly: ApplicationActivation(ActivationOption.Server)>
<Assembly: ApplicationAccessControl(False, AccessChecksLevel:=AccessChecksLevelOption.ApplicationComponent)>

<ComClass(MyClass.ClassId, MyClass.InterfaceId, MyClass.EventsId), ProgId("MyLibrary.MyClass")>
Public Class MyClass
    Inherits ServicedComponent
    [GUIDS]
    [subs and functions ... ]

我终于让它工作了...我尝试的所有不同的事情显然都阻止我看到我在进一步尝试中所做的任何更改。我这样说是因为今天我尝试重新开始 - 我进入服务器并清除了所有出现的程序集名称的注册表,然后我将它从 GAC 中删除,我能想到的任何地方。

然后在我的本地计算机上,我使用 Visual Studio 到 "Publish" 引用自定义 DLL 的网站。它立即在我的 Test.ashx 页面上起作用。因此,我像以前一样使用 regasm(64 位)注册了 DLL,它也在 ASP 端工作!

我没有收到任何建议,但感谢任何对此有想法的人。