如何克服错误#2146233079:自动化错误?

时间:2013-03-25 15:07:24

标签: .net c#-3.0 com-interop com+

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

  1. 为主dll及其相关dll执行Regasm.exe / tlb和Regasm.exe / tlb / codebase。
  2. 已注册的VB组件dll,它在COM +中使用.NET dll。
  3. 使用第1步注册了SEAC的dotnet dll。
  4. IISRESET
  5. 我们有3台服务器具有相同的设置。那些是Dev Server,Test Server,stage Server。它在dev和Test服务器上工作正常,它在舞台服务器中提供以下异常。

    Error#2146233079: Automation error
    

    我们已完成以下事项以解决此问题。但没有运气。

    1. 从开发服务器获取应用程序的所有dot net和vb dll,我们部署到Stage服务器,我们按照流程在dev中部署任何其他dll,但我们面临同样的问题。
    2. 通过测试服务器重复相同的过程。但仍面临同样的问题
    3. 检查注册表以确认.net framework 2.0,3.5的可用性(我们在这里只能考虑框架是否正确安装)。似乎是他们安装得正确
    4. 重新启动舞台服务器一次,以便删除所有旧的注册表项,然后我们刚刚注册了dlls.Still没有运气
    5. 创建一个.Net 3.5 exe并在217服务器中运行它以检查.Net 3.5是否正确安装。好像它安装得很完美。
    6. 请帮助克服这个问题。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

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

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

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

(3)通过异常消息,我们确定了特定的dll已被遗漏