2013-03-25 165 views
0

我们有一个VB组件通过COM +服务使用.NET 3.5组件。我们正在按照以下步骤注册DLL和如何克服错误#2146233079:自动化错误?

  1. 执行Regasm.exe/tlb和Regasm.exe/tlb/codebase为主dll及其相关的dll。
  2. 已注册的VB组件dll在COM +中使用.NET dll。
  3. 使用步骤1
  4. IISRESET

我们有3个服务器具有相同的设置注册SEAC的DOTNET的DLL。这些是开发服务器,测试服务器,舞台服务器。它在dev和Test服务器上工作正常,它在舞台服务器中给出以下例外。

Error#2146233079: Automation error 

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

  1. 所取的所有点网和vb的dll从dev的服务器应用程序,我们部署在同过程中的阶段服务器,我们下面来部署在开发中任何其他DLL,但是我们都面临着同样的问题。
  2. 采取测试服务器重复相同的过程。但仍然面临同样的问题
  3. 检查注册表以确认.net framework 2.0,3.5的可用性(我们唯一能想到的就是框架是否安装正确)。好像是他们被正确安装
  4. 重新启动阶段服务器一度让所有旧的注册表项被消灭了,然后我们刚注册的dlls.Still没有运气
  5. 做一个.net 3.5 exe文件,并在217运行服务器来检查.net 3.5是否正确安装。它似乎是完美安装。

请帮忙解决这个问题。

+0

是否存在堆栈跟踪? – 2013-03-25 15:28:08

+0

@LynnCrumbling:不幸的是:( – Babu 2013-03-25 15:48:48

+0

事件日志中的任何东西?还有,COM +服务是否在测试和分级中作为相同的模拟用户运行? – 2013-03-25 16:32:44

回答

0

我已经破解了这个问题。

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

我怎么破解
(1)我们在这里的VB组件创建.NET组件的实例,并调用VB .NET组件功能在界面上采取什么行动的问题发生,并放置日志,并承认其功能鉴定它给错误

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

(3)通过例外消息,我们发现特定的dll已被错过