服务器端应用组建,创建 DCOM 客户端服务器应用程序 - Visual Basic | Microsoft Docs

使用 Visual Basic 创建 DCOM 客户端/服务器应用程序

10/12/2020

本文内容

本文介绍如何使用 Visual Basic 来创建、打包和部署分布式组件对象模型 (DCOM) 客户端/服务器应用程序。

原始产品版本:   Visual Basic

原始 KB 数:   266717

摘要

本文介绍如何使用 Visual Basic 创建、打包和部署 DCOM 客户端/服务器应用程序。 若要创建 DCOM 客户端/服务器应用程序,需要使用 Visual Basic 的 Enterprise Edition。 Microsoft 假定读者已熟悉如何创建在同一台计算机上运行的客户端/服务器应用程序。

更多信息

您无需更改代码即可使客户端应用程序使用 DCOM 实例化远程服务器。 不同之处在于打包和部署客户端的方式。 此外,在安装客户端和服务器之后,还需要进行一些安全设置。 您可以使用名为 Dcomcnfg 的实用工具进行这些设置。

下面的步骤演示如何分发和配置客户端/服务器应用程序。 将服务器命名为 DCOMDemo_Svr,并将客户端命名 DCOMDemo_Cli。 为每个文件夹创建单独的文件夹。 出于本文的目的,请调用这些文件夹 c:\DCOMDemo\Server and c:\DCOMDemo\Client 。

创建服务器

启动新的 Visual Basic 项目。 在 " 新建项目 " 对话框中,选择 " ActiveX EXE",然后单击 " 打开"。 默认情况下会创建 Class1。

将以下代码添加到 Class1 模块中:

Public Function ServerTime() As String

ServerTime = Time

End Function

在 " 项目 " 菜单上,单击 " 项目属性 " 选项,然后选择 " 常规 " 选项卡。

在 " 项目名称 " 字段中,键入 DCOMDemo_Svr。

在 " 项目说明 " 字段中,键入 DCOMDemo_Svr-Server"。 检查 无人参与的执行 选项。

备注

应始终在没有任何 UI 的服务器中选中此选项,以确保在服务器运行时不会显示任何类型的对话框。 如果您有任何类型的用户交互,而您的服务器在不是交互式用户的标识下运行,则您的服务器可能看起来好像挂起了。

选择 " 组件 " 选项卡,然后选中 " 远程服务器文件 " 选项。

备注

选中此选项将使 Visual Basic 编译器生成用于打包使用此服务器的客户端应用程序所需的 VBR 和 TLB 文件。 这些文件包含需要包含在客户端计算机上的注册表项。

关闭 " 项目属性 " 对话框。

在 " 文件 " 菜单上,选择 " 另存为",然后将此项目保存到 c:\DCOMDemo\Server folder 。

在 " 文件 " 菜单上,选择 " 生成 DCOMDemo_Svr 并编译服务器"。

在 " 项目 " 菜单上,选择 " 项目属性 " 选项,然后选择 " 组件 " 选项卡。

在 " 组件 " 选项卡上,选择 " 版本兼容性",选择 " 二进制兼容性 " 选项,然后使项目二进制文件与您在 ( # A0) 创建的服务器的可执行文件兼容。 通过选择此选项,可以确保在重新编译服务器时,所有 Guid 保持相同。

创建客户端

在 " 文件 " 菜单上,选择 " 新建项目 " 选项,选择 " 标准 EXE",然后单击 "确定"。 默认情况下会创建 Form1。

在 " 项目 " 菜单上,单击 " 项目属性 " 选项,然后选择 " 常规 " 选项卡。

在 " 项目名称 " 字段中,键入 DCOMDemo_Cli。

在 " 项目说明 " 字段中,键入 DCOMDemo_Cli 项目-客户端"。

在 " 项目 " 菜单上,选择 " 引用"。 从可用引用的列表中,选择 DCOMDemo_Svr-Server"。

将命令按钮放在 Form1 上,并将按钮的标题更改为 " 运行"。

将以下代码放在按钮的 click 事件中:

Dim MyObj As DCOMDemo_Svr.Class1

On Error GoTo err1

Set MyObj = CreateObject("DCOMDemo_Svr.Class1")

MsgBox "Server Time=" & MyObj.ServerTime & " Client Time=" & Time

Exit Sub

err1:

MsgBox "Connection failed: Error " & Err.Number & " - " & Err.Description

在 " 文件 " 菜单上,选择 " 另存为",然后将项目保存到客户端的文件夹中 c:\DCOMDemo\Client 。

按 F5 键在 IDE 中运行客户端,并对其进行测试。

在 " 文件 " 菜单上,选择 " 进行 DCOMDemo_Cli " 以编译客户端,然后关闭 Visual Basic。

打包服务器

使用打包和部署向导按通常方式打包服务器以进行分发。 服务器由使用 DCOM 的远程客户端实例化。 为您的服务器创建包时,您会看到一个对话框,询问您是否将此服务器用作远程自动化服务器,以及是否要出于此目的而包含支持文件。 只需单击 " 否 " 按钮,因为 DCOM 不是远程自动化的。 远程自动化是由 DCOM 替换的较旧技术。

将客户端打包

打包客户端时,需要采取一些特定步骤,假定服务器不会在与客户端相同的计算机上运行。 对客户端的程序包所做的更改确保仅安装了类型库 ( .tlb 文件) ,并包含一些额外的注册表项,而不是服务器的可执行文件(因为它不会在该客户端的计算机上运行),这是不必要的。

使用以下步骤打包客户端:

启动 打包和部署向导,然后选择客户端的项目。

单击 " 包 " 按钮。 在 " 包类型 " 对话框中,选择 " 标准安装包",然后单击 " 下一步"。

在 " 包文件夹 " 对话框中,选择要存储该包的文件夹,然后单击 " 下一步"。 在这种情况下,它是 c:\DCOMDemo\Client\Package。

备注

您可能会看到一个对话框,指出没有服务器的相关性信息。 单击 "确定" ,因为此服务器没有任何依赖关系。

您现在应该在 "包含的文件" 对话框中。

取消选择服务器的可执行文件,DCOMDemo_Svr.exe,因为您不想分发服务器的可执行文件,然后单击 "添加" 按钮。

将 "类型" 组合框的文件更改为 " ( * vbr) 的远程服务器文件。

指向您的服务器项目所在的文件夹 (在这种情况下 c:\DCOMDemo\Server) ,并选择相关的 VBR 文件( DCOMDemo_Svr vbr)。 单击 " 打开"," 添加文件 " 对话框将关闭。

备注

包含两个文件, DCOMDEMO_SVR VBR 和 DCOMDemo_Svr .tlb。 单击 " 下一步 " 按钮。 在 " 远程服务器 " 对话框中,可以定义运行服务器的计算机 (网络地址) 的名称。 通常将此字段保留为空,因为您事先可能不知道将在哪里安装服务器。 如果将其保留为空,则会在您安装客户端时提示您。 对于此示例,请将其保留为空。

单击“下一步”继续操作。 现在,您可以继续执行打包和部署向导的标准过程。 在这种情况下,只需单击所有剩余对话框旁边的 " 下一步 "。

安装服务器

使用之前创建的分发包,在要运行该服务器的计算机上安装服务器。 如果要使用开发计算机运行服务器,则无需安装它,因为 Visual Basic 会在编译服务器时为您注册。

安装客户端

使用之前创建的分发包,在要运行该客户端的计算机上安装该客户端。 由于此客户端使用 DCOM 服务器并在您创建分发包时将服务器的实际位置保留为空,因此您现在需要提供此位置。 当安装程序提示您输入此位置时,请提供安装服务器的计算机的名称。

设置服务器的安全性

如果在 Windows NT 或 Windows 2000 计算机上安装了服务器,则需要为其配置安全性。 为此,请使用 Dcomcnfg,如以下步骤所示,其中假定客户端计算机和服务器计算机都是域的一部分,并且登录到客户端计算机的用户以域用户的身份登录。 建议的设置只是一种可能的配置。 它们是通用的,可提供对服务器的广泛访问权限。 请注意,这只是一个示例。 在部署实际应用程序时,如果您的环境考虑到安全问题,则应选择更多的限制性选项。 此外,如果用于测试此示例服务器的计算机用于运行其他服务器,请在进行以下更改之前记下当前设置,并在完成测试后立即返回到原始设置。

在服务器计算机上,单击 " 开始 " 按钮,然后选择 " 运行"。 在 " 运行 " 对话框中,键入 Dcomcnfg,然后单击 "确定"。 您需要具有管理员权限才能运行 Dcomcnfg。

选择 " 默认属性 " 选项卡,并验证 "在此计算机上启用分布式 COM" 是否已选中。

将 默认的身份验证级别 设置为 " 连接",并将 默认的模拟级别 设置为 " 标识"。

选择 " 默认安全 " 选项卡。

单击 "默认访问权限" 面板中的 "编辑默认值" 按钮。

使用 "允许" 访问权限验证列表中是否包含所有人和系统。 如果不是,则可以使用 " 添加 " 按钮将其添加到列表中。 列表完成后,单击 "确定" 。

在默认的 "启动权限" 面板中单击 "编辑默认值" 按钮。

使用 "允许启动" 权限验证列表中是否包含所有人和系统。 如果不是,请使用 " 添加 " 按钮将其添加到列表中。 列表完成后,单击 "确定" 。

选择 " 应用程序 " 选项卡,突出显示您的服务器,DCOMDemo_Svr Class1,然后单击 " 属性 " 按钮。

选择 " 常规 " 选项卡,将 " 身份验证级别 " 设置为 " 默认",然后选择 " 位置 " 选项卡。选中的唯一选项应该是在此计算机上运行应用程序。

选择 " 安全 " 选项卡,并验证 "使用默认访问权限" 和 "使用默认启动权限" 选项是否已选中。

选择 " 标识 " 选项卡,选中 " 启动用户 " 选项,单击 "确定" 以关闭服务器的 "属性" 对话框,然后再次单击 "确定" 关闭 Dcomcnfg。 正如您所看到的,测试服务器将使用所有默认设置。 部署您自己的服务器时,应定义特定于您的应用程序的设置。 所有自定义设置的优先级高于默认设置。

现已准备好测试您的服务器。 在客户端计算机上,启动客户端,然后单击 " 运行 " 按钮。 您应该会看到一个消息框,指示服务器的时间。 如果您无法成功测试此示例,请参阅 "参考" 一节中列出的疑难解答文章 Q269330。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值