问题标签 [system.messaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
504 浏览

vb.net - system.messaging 队列在 message.receive 时冻结

这是我第一次使用这个消息传递库并使用一些示例代码来实现它。我第一次运行它时它运行良好,但我突然停止了代码,因为我的解析方法似乎错误。因此,当我重新启动它时,代码冻结在以下行:

消息队列是否可能损坏或什么?我检查了服务器管理器,看起来队列仍然存在,消息数 =1 和以前一样。这是我的其余代码:

编辑:

如何创建队列:

以及如何使用:

并检查它是否是事务性的;

事实并非如此。

0 投票
2 回答
873 浏览

c# - 获取 Windows 消息队列中的所有消息时出现零星错误

在 Windows Server 2003 上运行的 C# ASP.NET 3.5 Web 应用程序中,我偶尔会收到以下错误:

引发此错误的代码行是:

whereGlobal.getOutputQueue(mode)给出了我想从中获取消息的消息队列。

更新:

p>

0 投票
3 回答
5134 浏览

system.messaging - 指定的格式名称不支持请求的操作。例如,不能删除直接队列格式名称

我正在尝试使用 Message 对象将消息发送到队列并收到错误消息

指定的格式名称不支持请求的操作。例如,不能删除直接队列格式名称。

这是代码。

对此的任何帮助表示赞赏。

汤姆

0 投票
1 回答
1335 浏览

c# - 为什么在 Unity 中使用 system.messaging 会导致未处理的异常?

我有以下简单的代码:

我收到以下错误:

未处理的异常:System.TypeLoadException:无法从程序集“System.Messaging,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”加载类型“System.Messaging.MessageQueue”。

在(包装器托管到本机) System.MonoType:GetMethodsByName (string,System.Reflection.BindingFlags,bool,System.Type)

在 System.MonoType.GetMethods (BindingFlags bindingAttr) [0x00000] in :0

在 Mono.CSharp.MemberCache.AddMethods (BindingFlags bf, System.Type 类型) [0x00000] in :0

在 Mono.CSharp.MemberCache.AddMethods (System.Type 类型) [0x00000] in :0

在 Mono.CSharp.MemberCache..ctor (IMemberContainer 容器) [0x00000] in :0

在 Mono.CSharp.TypeHandle..ctor (System.Type 类型) [0x00000] in :0

在 Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in :0

在 Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in :0

在 Mono.CSharp.TypeManager.MemberLookup_FindMembers (System.Type t, MemberTypes mt, BindingFlags bf, System.String name, System.Boolean& used_cache) [0x00000] in :0

在 Mono.CSharp.TypeManager.RealMemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList most_match) [0x00000] in :0

在 Mono.CSharp.TypeManager.MemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList most_match) [0x00000] in :0

什么可能导致这种情况,我该如何解决?

0 投票
1 回答
1218 浏览

.net - 使用 MessageEnumerator RemoveCurrent 我如何知道我是否在队列末尾?

在 .NET 上的 MSMQ 中,我使用 MessageEnumerator 来查看队列中的所有消息。我想删除满足特定条件的消息。

当我调用 MoveNext 来单步执行队列时,我会返回一个布尔值来告诉我当前消息是否存在。但是,当我执行 RemoveCurrent 时,我如何知道删除后的当前消息是否存在?是检查 Current 并处理异常的唯一方法吗?

这是一个示例,我使用删除超过一年的消息的简单条件。假设队列是在其他地方创建的并使用 MessageReadPropertyFilter.ArrivedTime = true 设置:

0 投票
1 回答
236 浏览

.net - system.messaging 消息未到达

我的消息没有到达目的地。我没有收到错误。即使在接收端打开了日志,它也不会显示在接收端的日志中。目标队列的权限设置为所有人完全控制。目标 msmq 服务的诊断显示 msmq ping 良好。本月早些时候,其他应用程序已成功写入此队列。它显示在我的日志中(发送端)。它没有出现在我端或接收端的死信或交易死信中。我仔细检查了队列名称。我没有发现谷歌点击或其他关于此的问题。我广泛搜索了“system.messaging”问题或“system.messaging”问题,以及其他一些更具体的搜索。

在这种特殊情况下,我使用的是 ActiveX 格式化程序。

0 投票
0 回答
847 浏览

c# - 为什么使用 FormatName 发送到远程私有队列时 MessageQueue.Send(Object) 不起作用?

所以……这个让我很困惑。

目标队列位于MSMQ 在工作组模式下运行的ServerA上。该队列是一个非事务性的私有队列,几乎对世界具有完全权限(包括NETWORK SERVICE,但不包括ANONYMOUS LOGON)。

我这样指定队列地址:FormatName:DIRECT=OS:ServerA\private$\targetqueue

如果我有兴趣发送“即发即弃”式(不需要事务,因为没有其他持久性正在进行),我认为只需调用:

但奇怪的是,消息永远不会到达目标队列,并且启用负源日志(有趣的是,这会导致消息被发送到目标服务器上的死信消息队列)告诉我它是“非事务性消息”。

因此,使用

作品!很难解决这个问题。我错过了什么?

此外,我还看到很多其他人的帖子,他们的类似问题通过给予匿名登录完全权限来解决。在什么情况下这是必要的?授予NETWORK SERVICE访问有些意义,因为这是 MSMQ 本身运行的帐户。如果像我一样在工作组模式下运行,是否有必要将权限分配给每个人,甚至是我的进程运行所在的帐户?

感谢帮助!

0 投票
1 回答
661 浏览

c# - 监视 MSMQ 队列

我有一个写入私有 MSMQ 队列的应用程序。我想通过监控队列来监控应用程序是否正常工作。通常我可以使用性能计数器查看队列中的消息数量,但是有一个非常激进的队列读取器。如果我的监控程序依赖于查看队列中的消息,则很有可能它永远不会看到任何内容,因为在我的监控应用程序看到消息之前已经读取了消息。即我担心以下时间表:

鉴于上述情况,虽然队列上有活动(写入和读取),但在监控事物时永远不会有任何活动。

有没有办法查看过去一分钟或一小时内通过的队列项目数?或者其他任何可以让我监控队列的东西?

0 投票
2 回答
1988 浏览

msmq - MSMQ 消息在到达远程服务器时消失

我必须在同一域中的两台服务器SenderServer (MS Server 2012) 和ReceiverServer之间创建MSMQ消息传递机制 (MS Server 2008 R2)

我在ReceiverServer中创建了一个私有的事务队列 .\private$\receiver,我将接收(和查看)消息权限授予系统和管理员。

然后,我创建了一个客户端应用程序,它使用以下代码创建消息并将消息转发到队列:

在部署应用程序之前,我在我的机器 (Windows 7) 上对其进行了测试,该机器正确地Direct=OS:ReceiverServer\private$\receiver使用State:Connected和创建了传出队列Connection History:Connection is ready to transfer messages。消息正确地发送到ReceiverServer并放入\private$\receiver队列中。每条消息的ReceiverServer记录两个事件End2End log

  1. 消息来自网络 (EventId: 4)
  2. 消息ID CN=msmq, CN=[mymachinename], CN=Computers, DC=[domain], DC=[other]已放入队列ReceiverServer\private$\receiver(EventId:1)

然后我使用相同的代码从SenderServer中使用客户端应用程序。服务器正确地创建了一个传出队列Direct=OS:ReceiverServer\private$\receiver,我可以看到消息排队并被发送,但我没有在远程State:ConnectedReceiverServer队列中收到它们。如果我检查ReceiverServer的End2End 事件日志,我只会看到第一条消息(消息来自网络(EventId:4)),但该消息未放入队列中。Connection History:Connection is ready to transfer messages.\private$\receiver

我关闭了两台机器的防火墙,更改了队列的授权设置,并为队列尝试了以下端点:

  • FormatName:Direct=OS:[IPv6 address]\private$\receiver
  • FormatName:Direct=TCP:ReceiverServer\private$\receiver
  • FormatName:Direct=TCP:[IPv6 address]\private$\receiver

没有运气。Microsoft 的故障排除过程和文档非常笼统和简单,因此我决定在这里问,因为对我来说是死胡同。

0 投票
1 回答
9753 浏览

.net - 队列不存在或您没有足够的权限来执行该操作。通过 MSMQ 发送消息时出现异常

我创建了一个函数来通过 MSMQ 发送消息,但在执行时出现异常。下面是我的功能。

例外:- 队列不存在或您没有足够的权限来执行操作。

此外,我无法在计算机管理下打开消息队列的安全选项卡。请参阅随附的屏幕截图。 在此处输入图像描述

我尝试在私有下手动创建消息队列,系统允许我这样做。见下文 在此处输入图像描述

下面是 mmc 跨度。 在此处输入图像描述