【问题标题】:How to work with DCOM using VB6 app? I get 462 error如何使用 VB6 应用程序使用 DCOM?我收到 462 错误
【发布时间】:2015-02-04 11:07:04
【问题描述】:

我们有一个在本地机器上使用一些 DLL 的 VB6 应用程序。现在我们要在远程 COM+ 服务器上分发 DLL。

我在服务器上注册了一个 COM 应用程序并将其导出为代理 .msi 安装程序,并将其安装到我的本地计算机上。

当启动应用程序时,它会显示一条错误消息“运行时错误'462'远程服务器机器不存在或不可用”。

当我尝试调试时,我发现它无法调用我的一个分布式 DLL。

问题:我做错了什么?我能做些什么来解决它?

Dim oRefE As UtilitairesClientMal.Erreurs
Dim oRefTR As UtilitairesClientMal.TablesReference

Set oRefE = New UtilitairesClientMal.Erreurs '它在这里失败并跳转到下一个突出显示的行

g_sNomMachine = oRefE.NomMachineConnecte
g_sNomUtilisateur = oRefE.NomUtilisateurConnecte
Set oRefE = Nothing

........

将 MonErreur 调暗为 ALWErreur.Erreur

Set MonErreur = New ALWErreur.Erreur
  • 本机是W7(32位)
  • 服务器是Windows Server 2008(32位)

请善待 :) 如果有人需要澄清可能有助于发表评论 (我对 VB6 和 COM+ 都不是很有经验,所以请原谅我的无知 :()

【问题讨论】:

  • 不确定,因为我自己没有这样做,但我相信你需要使用后期绑定,即 CreateObject。另外,服务器是否有超过1个网卡?
  • @jac 我已经检查过了,服务器有两个网卡,我在注册表“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\DCOM”中检查了 DCOM 协议的关键值“ncacn_ip_tcp”我可以使用IP 地址而不是服务器名称?
  • 我不知道,因为这可能就是问题所在,但这里有几个 kb 故障排除文章的链接。 support.microsoft.com/kb/183930/EN-US, support.microsoft.com/kb/269330/en-us

标签: windows-7 vb6 windows-server-2008 com+ dcom


【解决方案1】:

确切的问题与我的服务器有两个网络适配器有关。

我通过使用 IP 地址而不是服务器名称来修复它:

在我的客户端机器上 > dcomcnfg > MYAPP 属性 > 激活 > 远程服务器名称

然后我收到一个安全错误说“权限被拒绝(70)”,我通过更改安全限制来修复它:

在服务器上 > dcomcnfg > 计算机 > 属性 > COM 安全 > 选中:远程执行“每个人”

我希望有一天它对某人有所帮助。如果有人需要解释,我会很高兴。

感谢jac,他让我知道了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    相关资源
    最近更新 更多