首页 > 解决方案 > 为经典 asp 创建 .net dll

问题描述

我在 C# 中创建了一个类库并编译为 dll。我在解决方案中添加了一个网站,并且从 asp.net 调用 dll 中的方法没有问题。但是,当我尝试使用 Server.CreateObject 在经典 asp 中使用它时,我收到错误“Server.CreateObject Failed”。

我已经阅读了我能找到的所有内容。我做了以下事情:

  1. 转到属性-> 构建并检查“注册 COM 互操作”
  2. 在 assembly.cs 中,我添加了 [assembly: ComVisible(true)]
  3. 在我添加的课程中

    [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] [Guid("2CDBF7B7-BD43-4B64-BB81-8591CB259065")]

  4. 我生成并添加了 GUID

  5. 我在 assembly.cs 中生成并引用了 snk

我将继续研究,但考虑到我的时间限制,我希望有人能解决这个问题。

我已阅读您使用 RegAsm 注册了一个用于经典的 .net dll,但服务器没有 RegAsm 并且无法安装。我必须使用 RegSvr32 进行注册,但是当我尝试注册时,我收到错误“未找到 DllRegisterServer 入口点”。

如果您有有效的解决方案,请分享。我已经在谷歌上搜索了好几天,尝试了我找到的所有东西,但没有任何效果。

标签: .netdllasp-classicregsvr32

解决方案


您需要在代码中添加 DllRegisterServer,这是一个示例 https://limbioliong.wordpress.com/2011/08/11/programmatically-register-com-dlls-in-c/

重新构建,然后在生成的 .NET DLL 上调用 regsvr32

最后从您的 ASP 项目中调用 .DLL。


推荐阅读