0

我是 MSMQ 的新手。我们有很多 c# 应用程序(.exe)在一个端口上发送数据包的情况。他们可以将数据包发送到一个端口。如何将 MSMQ 配置为自动从端口读取并将这些数据包发布到 MSMQ。我们不能丢失任何这些数据包,因此根本不能接受数据丢失。如何有效地做到这一点。能否将 MSMQ 配置为接受来自端口 1801 的数据包。如果我们将这些应用程序写入不同的端口会更好吗?如果他们写入一个端口,如何将这些消息直接发送到 MSMQ 而不会丢失数据。我们希望队列是事务性的。我们不想使用到达的数据包。

请帮忙 。任何可以完成此任务的示例代码都会有很大帮助。

请注意,应用程序是用 C# .NET 编写的。数据丢失和性能缓慢一直是一个问题,我们正在尝试使用 MSMQ 解决这些问题。我们必须在 MSMQ 中查看来自这些应用程序的所有数据包。

谢谢

4

2 回答 2

0

如何将 MSMQ 配置为自动从端口读取

除非您准备编写代码,否则我认为这是不可能的。因此,假设您不介意自己编写一点代码,请查看System.Messaging.Message类。Body 属性允许您发送字节数组。

因此,只要您从端口读取某种字节数组,将其放入消息中应该是轻而易举的事。

于 2012-08-13T14:01:32.260 回答
0

如何有效地做到这一点。是否可以将 MSMQ 配置为接受来自端口 1801 的数据包。如果我们将这些应用程序写入不同的端口会更好吗?

1801 已经是MSMQ TCP数据包的默认端口,请参阅 MSDN 文章TCP 端口、UDP 端口和消息队列使用的 RPC 端口

如果您的端口号确实很重要,您可以将 WCF 服务配置为在其address服务配置部分中侦听某些端口。

使用 MSMQ 时,您通常不必处理任何特殊端口,除非通过防火墙配置多个网络之间的通信(MSDN 文章:如何为 MSMQ 访问配置防火墙)。

如果可能的话,我会建议坚持使用默认值。

如何将这些消息直接发送到 MSMQ 而不会丢失数据。我们希望队列是事务性的。

如果您使用事务队列,您可以自动保护消息以防止数据丢失。在 WCF中排队使用 MSMQ 和 .NET 进行可靠消息传递中的更多信息

数据丢失和性能缓慢一直是一个问题,我们正在尝试使用 MSMQ 解决这些问题。我们必须在 MSMQ 中查看来自这些应用程序的所有数据包。

MSMQ 本身既快速又轻巧,但与所有其他工具一样,这完全取决于您使用它做什么以及如何使用它。如果您开始发送大数据包,MSMQ 也可能会遇到麻烦。请记住,MSMQ 有一些限制,例如消息大小

以下是帮助您开始结合使用 WCF 和 MSMQ的文章/教程:

于 2012-08-14T09:55:17.300 回答