0

我们有一个由 VB 组件通过 COM+ 服务使用的 .NET 3.5 组件。我们按照以下步骤注册 dll 和

  1. 为主 dll 及其依赖 dll 执行了 Regasm.exe /tlb 和 Regasm.exe /tlb /codebase。
  2. 在 COM+ 中使用 .NET dll 的已注册 VB 组件 dll。
  3. 使用步骤 1 注册 SEAC 的 dotnet dll。
  4. IIS重置

我们有 3 台具有相同设置的服务器。它们是开发服务器、测试服务器、阶段服务器。它在开发和测试服务器中运行良好,并且在阶段服务器中给出了以下异常。

Error#2146233079: Automation error

为了解决这个问题,我们做了以下事情。但没有运气。

  1. 从开发服务器获取应用程序的所有 dot net 和 vb dll,然后我们将其部署到 Stage 服务器,并按照我们在 dev 中部署任何其他 dll 的过程进行部署,但我们面临同样的问题。
  2. 通过使用测试服务器重复相同的过程。但仍然面临同样的问题
  3. 检查注册表以确认 .net 框架 2.0、3.5 的可用性(我们在这里唯一能想到的是框架是否正确安装)。似乎它们已正确安装
  4. 重新启动 Stage 服务器一次,以便清除所有旧注册表项,然后我们重新注册 dll。仍然没有运气
  5. 制作一个 .Net 3.5 exe 并在 217 服务器上运行它以检查 .Net 3.5 是否正确安装。似乎它安装得很完美。

请帮助解决这个问题。

4

1 回答 1

0

我已经破解了这个问题。

根本原因和解决方案:
该机器中缺少一个 .NET dll。通常开发和测试我们已经安装了 .NET 框架和 Visual Studio。然而,在舞台和制作中,我们只安装了 .NET 框架,而不是整个 Visualstudio 套件。我们怀疑这就是原因。我们已经在舞台和生产机器的 GAC 中注册了该组件,问题得到了解决。

我是如何破解
的(1)我们已经确定问题发生在什么操作上,并将日志放在 VB 组件创建.NET 组件实例和 VB 调用 .NET 组件函数的界面上,并识别出哪个函数给出错误

(2) 在该函数中,我们放置了 try catch 并将异常消息记录在某个外部文件中。

(3) 通过异常消息我们已经确定了特定的 dll 已丢失

于 2013-04-03T17:25:02.877 回答