1

自 1 个月以来,我一直在为此苦苦挣扎。有人可以帮我解决这个问题吗?

我在一台服务器上安装了 QTP,在另一台服务器上安装了我的 ASP.Net Web 应用程序。我正在尝试使用 C# 或 VBS 代码从我的 Web 服务器调用 QTP。两种方法都不起作用。经过大量研究后,我知道我需要将尝试调用 QTP 的用户添加到 QTP 服务器上的 COM 设置中。我什至将自己添加到 COM 设置中,但这种方法效果不佳。在做了一些研究之后,我才知道权限或防火墙限制可能存在问题。但我已经联系了我们的网络团队,得知我们的服务器之间没有防火墙限制。以下是我使用的 C# 和 VBS 方法及其结果。如果有人知道此问题的解决方案,请帮助我完成此请求。提前致谢。

VBS方法:

.cs 文件代码

 System.Diagnostics.Process.Start(@"C:\Program Filestest1.vbs");

.vbs 文件代码

Dim qtApp 
Dim qtTest 
Dim qtResultsOpt 
Set qtApp = CreateObject("QuickTest.Application","Server IP")
qtApp.Launch 
qtApp.Visible = True 

结果: 代码在服务器上运行:没有错误消息,它在另一台服务器上调用 QTP。代码从本地运行:错误消息权限被拒绝:'CreateObject',800A0046。

C#代码方法:

Type remoteQTP = Type.GetTypeFromProgID("QuickTest.Application", "Server IP");
QuickTest.Application qtp = (QuickTest.Application)Activator.CreateInstance(remoteQTP);
qtp.Launch();
qtp.Visible = true;

结果: 从机器服务器 IP 地址检索具有 CLSID {2B9B8E92-EBAA-44AF-A23C-9FBD08EAFA54} 的远程组件的 COM 类工厂失败,原因是以下错误:80070005。

4

1 回答 1

0

您能否检查您是否具有特定于目标计算机上 QTP 远程代理 COM 服务的权限。以下是步骤:

  1. 转到控制面板>管理工具>组件服务
  2. 在组件服务管理单元中,导航到Computers\My Computer\DCOM Config
  3. 在右窗格中,找到AQTRmtAgent
  4. 右键单击AQTRmtAgent,然后选择属性
  5. 安全选项卡上,选择自定义,然后单击编辑
  6. 将用户添加到权限列表。

PS:对不起,我刚刚重新阅读了您的问题,并且您提到您已尝试将用户添加到 COM 设置,但它没有指定您尝试添加的进程,所以我会保留我的帖子并尝试根据您的回复提供帮助。

于 2013-08-15T16:58:08.600 回答