【发布时间】:2010-08-12 12:12:11
【问题描述】:
我有一个旧的 .net 2005 网站,该网站有一些 asp 页面,并且在访问 .net dll 时遇到对象引用问题。维护任务交给了我,而原来的开发者却无处可寻 :(我已经从 .Net 开始了,所以我并不真正掌握处理这种 dll 地狱之类的问题。
在下面的箭头上是我正在参加的地方 "(0x80131500) 对象引用未设置为对象的实例。”
Set objCommon = Server.CreateObject("Wrapper.CommonFunctions")
Dim machineBuilding
--->>> If objCommon.IsMachineAccount(strLogin, machineBuilding) Then
我已经按照以下步骤操作:
- regasm /tbl /codebase mycomdll.dll
- gacutil /i mycomdll.dll
- 将 mycomdll.dll 复制到 System32 目录
- 从控制台执行 issreset
- 如果您的 dll 是在 framework 2.0 中创建的,则在 system32 目录中创建一个“dllhost.exe.config”文件并将其放入:
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<requiredRuntime version="v2.0.50727"/>
</startup>
</configuration>
6.- 使用 issreset 命令重启 IIS
还有这些:
- 在项目属性下 一种。在 \application\assembly 信息下 一世。选中“使程序集 Com-Visible”。 湾。正在建设中 一世。勾选“注册 Com Interop”
- 请勿签名。
- 确保 IUSR 对该文件具有完全权限。
- 通过 iisreset 重新启动 IIS 以刷新所有缓存。
仍然没有成功运行应用程序。还有更多想法要检查或做什么吗?谢谢!
埃米尔
【问题讨论】:
-
我有一个经典 ASP 应用程序,它通过 COM 包装器使用 .NET 程序集,并且经典 ASP 代码与您的相似。您是否已验证 strLogin 和 machineBuilding 已初始化?您是否从其他客户端执行了 objCommon.IsMachineAccount 以验证调用本身没有引发错误?
-
谢谢梅奥。我尝试附加到 dllhost 并能够通过 asp 代码进行调试,是的,strLogin 有我的网络 ID 值;机器制造商将从调用中获得价值。我认为 asp 代码没有问题,因为我们在生产服务器上有一个工作版本。但是,我需要先让源代码在本地正常工作,然后才能提出更改请求。
标签: .net iis asp-classic regasm gacutil