我已经在这方面工作了好几天并取得了进展,但它仍然没有按照我需要的方式工作。
首先,该项目采用经典的asp(vbscript)编写的现有大型站点(超过200多个文件的100,000多行代码)并转换为.NET框架。
现有代码大部分都使用VBScript类,我的计划是模拟已经定义到.NET程序集中的十几个类,这些类都包含新的.NET版本和现有的Classic ASP页面可以使用 - 通过COM +。
我已经制作了第一个类定义,在.NET中复制,它在开发服务器上的Test.ashx页面中工作(当我在浏览器中转到页面时,我得到了预期的输出)。但是在调用Server object error 'ASP 0177 : 80004003'
的行上的Test.asp页面set obj = server.CreateObject("MyLibrary.MyClass")
上调用它时收到错误。
我已经通过regasm注册了自定义DLL,就像这个regasm "C:\inetpub\siteroot\bin\MyLibrary.dll" /tlb /codebase
一样,它看起来工作正常(该库出现在服务器的组件服务中,正如预期的那样定义了方法,一切看起来都很好。
我的直觉告诉我它是32位/ 64位问题或权限问题。我已经尝试了许多不同的事情,这些事情太多而无法重述,但任何建议都会受到高度赞赏。
注意:
第一个类的.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 ... ]
答案 0 :(得分:0)
我终于开始工作......我尝试过的所有不同的事情都让我无法看到我在进一步尝试中所做的任何改变。我这样说是因为今天我尝试重新开始 - 我进入服务器并清理了所有组件名称的注册表,并将其从GAC中删除,我无处不在。
然后在我的本地计算机上,我使用Visual Studio来发布&#34;发布&#34;引用自定义DLL的网站。它立即在我的Test.ashx页面上工作。那么我像以前一样使用regasm(64位)注册了DLL,并且它也在ASP方面工作!
我没有收到任何建议,但感谢任何想过这个想法的人。