如何:创建队列

更新:2007 年 11 月

创建队列以提供消息处理组件可与之交互的资源。例如,假设要生成一个订单输入系统,该系统在收到来自销售人员或网站上客户直接交互的订单后,将其放入队列中。开始时可以在“消息队列”企业版上创建一个“订单输入”队列。为处理订单创建的所有组件都将同此队列交互。

有两种创建队列的方法:使用“服务器资源管理器”窗口或使用代码中的 Create 构造函数。可以使用“服务器资源管理器”或 Windows 2000 的“计算机管理”窗口来验证队列是否已成功创建。

可以在自己的计算机上或享有域或者企业管理访问权限的任何“消息队列”计算机上创建公共队列。还可以仅在本地计算机上创建专用队列。有关访问权限的更多信息,请参见消息队列安全性,或者参见“计算机管理”窗口的文档中的“消息队列的访问控制”。

说明:

一定要注意创建队列与创建 MessageQueue 组件的实例之间的区别。使用 Create 方法时,是在“消息队列”网络中创建新队列,而不是在项目或应用程序中创建组件。而当创建 MessageQueue 组件的实例时,则是在项目内创建可引用操作系统中现有队列的组件。

还可将安装组件配置为当部署应用程序时创建或定位现有队列。有关更多信息,请参见部署中的自定义操作管理

从服务器资源管理器创建队列

  1. 打开“服务器资源管理器”,访问要在其中创建队列的服务器。有关更多信息,请参见如何:访问和初始化服务器资源管理器/数据库资源管理器

    向 Visual Studio 项目添加 MessageQueue 组件的实例时,系统会自动创建访问这些命名空间和类所需的引用和导入语句。

  2. 右击“消息队列”节点。

  3. 根据要创建的队列类型,右击“公共队列”或“专用队列”,然后单击“创建队列”。

  4. 在“创建消息队列”对话框中,键入队列的名称。

  5. 如果要使队列成为事务性队列,请选择“使队列具有事务性”。有关更多信息,请参见事务性消息处理

    说明:

    如果域较大且域中具有许多域控制器,则创建公共消息队列所需的时间可能要比预期的时间长。这是因为新公共队列需要花些时间从您的计算机的域控制器复制到域中所有其他域控制器。在此远程复制过程中,您可能会经历延迟。

以编程方式创建公共队列

  1. 右击项目并选择“添加引用”。添加对 System.Messaging.dll 的引用。

  2. 使用 Create 方法在计算机上创建公共队列。您的代码应类似于:

    System.Messaging.MessageQueue.Create("myMachine\MyQueue")
    
         System.Messaging.MessageQueue.Create(@"myMachine\MyQueue");
    
    提示:

    可以使用 Create 方法的重载来指示您要创建事务性队列。还可以在路径中使用句点 ( . )来表示本地计算机。

    安全说明:

    请注意,在创建消息队列时,该资源可能已经存在。另一进程(可能是恶意进程)可能已创建了资源,并拥有对该资源的访问权。将数据放入消息队列后,其他进程就可使用这些数据了。有关现有队列的信息,请参见如何:检索队列

以编程方式创建专用队列

  • 使用 Create 方法,指定所需的语法 Private$,以便在计算机上创建专用队列。您的代码应类似于:

    System.Messaging.MessageQueue.Create(".\Private$\MyPrivateQueue")
    
         System.Messaging.MessageQueue.Create(@".\Private$\MyPrivateQueue");
    

    可以使用“服务器资源管理器”窗口或 Windows 2000 的“计算机管理”窗口来验证是否已创建消息队列。

验证是否已创建消息队列

  • 在“服务器资源管理器”中,右击“队列”,然后单击“刷新”以刷新“消息队列”节点。队列的显示可能要花费一段时间。

    - 或 -

  • 若要在 Windows 2000 中查看消息队列信息,请按以下步骤操作:

    1. 右击桌面上的“我的电脑”,然后单击“管理”。

    2. 在出现的对话框中,展开“服务和应用程序”节点,然后展开“消息队列”。可在此节点中找到队列及其消息。

请参见

任务

如何:创建 MessageQueue 组件实例

其他资源

创建、删除和管理队列