65.9K
CodeProject 正在变化。 阅读更多。
Home

适用于 Websphere MQ 5.3 的 C# 服务组件

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.54/5 (6投票s)

2004年10月29日

3分钟阅读

viewsIcon

43337

downloadIcon

871

一个 C# .NET 服务组件,封装了 MQ PUT 和 MQ GET 操作。

引言

本文将介绍构建一个 C# 服务组件所需的条件以及如何编写该组件,该组件封装了与 IBM 大型机通信的所有复杂细节。

背景

我被分配了一个新项目,需要编写一个 COM+ 程序,以使客户端(主要是 Classic ASP 和 ASP.NET)能够将我们的在线用户配置文件与 IBM 大型机上的用户存储同步。在开始项目之前,我惊讶地发现关于在 .NET 环境中编程 WebSphere MQ 的文章非常少。因此,我想在这里分享我的工作,以帮助需要使用 IBM Websphere MQ 的同行程序员节省时间和精力。

使用代码

为了使用和测试代码,您需要安装 IBM WebSphere MQ 5.3 及 CSD05 或更高版本。如果尚未安装,请将 AMQMDNET.DLL 安装到 GAC 中(通常由 WebSphere MQ 5.3 安装程序完成)。创建队列管理器、队列和通道。您可以参考 Rosi Reddy 的文章 Message Queuing by MQSeries with C# 来创建必要的 WebSphere MQ 配置。

以下是创建项目解决方案的步骤:

  1. 通过单击“文件”菜单上的“新建”来打开一个新项目。会出现“新建项目”对话框,然后在“项目类型”框中选择“新建 C# 项目”。在右侧选择“类库”作为模板。
  2. 将名称更改为 MQServicedCom 并选择所需位置。单击“确定”。
  3. 右键单击“引用”,然后在“添加引用”对话框中同时选择“WebSphere MQ classes for .NET”和 `System.EnterpriseServices`,然后单击“确定”。
  4. 将以下内容添加到 `using` 块中:
    using System.EnterpriseServices; // for ServicedComponent 
    using System.Runtime.InteropServices; //for Class Interface 
    using System.Diagnostics; //for Windows Event Logging 
    using IBM.WMQAX; //for IBM Websphere MQ in .NET
  5. 通过单击“视图”菜单选择“类视图”,并将类名从 `Class1` 更改为 `MQServices`。
  6. 将接口、类和方法的所有代码添加到 `MQServices` 类中。在本例中,复制并粘贴 `MQPutMessage` 和 `MQGetMessage` 方法,以及 `IMQServices` 接口。确保所有属性,例如 `[JustInTimeActivation()]`,也一并复制。
  7. 确保 `MQServices` 类以以下方式实现 `ServicedComponent` 和 `IMQServices` 接口:
    public class MQServices : ServicedComponent, IMQServices
  8. 通过单击“开始”、“程序”、“Microsoft Visual Studio .NET 2003”、“Visual Studio .NET 工具”来打开 Visual Studio .NET 2003 命令提示符。
  9. 服务组件需要具有强名称。打开命令提示符后,导航到 MQServicedCom 项目文件夹,然后键入:sn -k MQServicedComKey.snk
  10. 将源文件的 AssemblyInfo.cs 复制并粘贴到您的项目的 AssemblyInfo.cs 文件中。

    请注意,您应该替换 MQServices.csAssemblyInfo.cs 文件中的所有 GUID,以确保唯一性。您可以单击“工具”菜单并选择“创建 GUID”来生成新的 GUID。然后复制并粘贴新生成的 GUID 进行替换。

  11. 现在可以进行构建了。通过单击“生成”菜单中的“生成解决方案”来构建 `MQServicedCom` 程序集。
  12. 在命令提示符下,导航到构建的程序集所在的 bin 文件夹。键入:RegSvcs MQServicedCom.dll 来注册该程序集。
  13. 通过键入:gacutil /i MQServicedCom.dll 将其安装到 GAC 中。

    大功告成。现在您拥有了一个可服务的服务组件。要验证它,请打开“组件服务管理器”。您可以在其中找到 COM+ 应用程序 MQ 服务组件库,其标题取自 AssemblyInfo.cs 文件中的 `ApplicationName` 属性。您可以使用 TestCom.vbs 文件来测试这个新创建并注册的服务组件。祝您好运,玩得开心。

关注点

以下两本书在编写企业服务组件方面对我帮助很大:

历史

  • 创建于 2004 年 10 月 29 日,版本 1.0.0.0。
© . All rights reserved.