gpt4 book ai didi

delphi - Windows Server 2008 R2 上的旧版 DCOM 服务器

转载 作者:行者123 更新时间:2023-12-03 15:31:00 29 4
gpt4 key购买 nike

我有一个旧的 DCOM 服务器和客户端应用程序,都是用 Delphi v6 编写的。 DCOM 服务器当前配置为运行一次并为所有客户端提供服务。它运行一次的主要原因是服务器提供了一个帐户应用程序的接口(interface)并且必须登录并且只能对给定的用户名执行一次。

我们的客户现在想要将他们的服务器升级到 Windows Server 2008 R2,而客户端则保留在 Windows XP 上,但我无法复制当前的设置。

我目前可以在测试台上工作的设置有点奇怪!

  1. 我必须配置 DCOM 设置以允许远程启动,否则客户端会拒绝访问
  2. 如果 DCOM 服务器尚未运行,当客户端尝试连接到它时,我会发现服务器执行失败。
  3. 如果服务器正在运行并且启动权限设置为允许远程启动,则客户端将启动 DCOM 服务器的新实例,而不是使用已启动的实例。这会导致帐户应用程序出现问题,因为同一用户尝试登录,但这是不允许的。
  4. 如果我关闭在服务器上运行的 DCOM 服务器,客户端会愉快地使用自己的实例。我看不到 DCOM 服务器主窗体,因为它在后台运行(可以在任务管理器中看到它)

我发现了各种与此问题有关的文章,但到目前为止没有任何效果。其中包括以管理员身份运行DCOM服务器、不以管理员身份运行DCOM服务器、在防火墙中允许COM+、将DCOM服务器添加到防火墙、DCOM服务器位于SysWOW64、使用32位版本的DCOMCNFG等。 p>

现在不知道该去哪里...

感谢您的帮助

西蒙

最佳答案

DCOM 默认权限在 XP SP2 和 2003 SP1 中已更改。您需要正确配置才能使您的服务正常运行。通常,除非您在服务中实现 DCOM 服务器(由于 DCOM 支持有限,Delphi 不允许这样做),否则 DCOM 服务器会在用户连接时启动,这就是您可能需要“远程启动”权限的原因。此外,DCOM 服务器可以在给定用户、交互式用户(远程客户端必须避免!)或启动用户的上下文中启动。您使用什么模式? - 如果设置为“启动用户”,它将始终创建一个新实例。在新操作系统之前,您的服务器是如何实例化的?它的类工厂是如何实现的呢?请参阅here有关 DCOM 和 Delphi 实现的一些有趣信息。

顺便说一句:

  • 除非确实需要,否则切勿以管理员权限运行 DCOM 服务器。否则,您可能会造成安全漏洞。
  • 如果存在防火墙,则必须向调用客户端开放 RPC 端点端口和为 DCOM 配置的端口。
  • 不要将系统目录与您的应用程序搞乱。没有必要,如果您的应用只能在那里运行,那么您的权限配置错误,并且您无法通过将文件放置在不属于它们的位置来正确解决该问题。

关于delphi - Windows Server 2008 R2 上的旧版 DCOM 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10417905/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com