问题标签 [msmqintegrationbinding]

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 回答
593 浏览

dns - 发送到 DNS 别名 127.0.0.1 的 MSMQ 消息最终在传出队列而不是本地队列上

我正在使用 msmqIntegrationBinding 将消息发送到旧版 MSMQ。我希望能够在 preprod 中使用与生产中相同的配置文件,但在 preprod 中,遗留队列是本地的,而生产队列在另一台服务器上。

我以为我可以使用 DNS 别名来做到这一点。

我已在我的 preprod 服务器上的 HOSTS 文件中将 DNS 别名设置为 127.0.0.1

我已将客户端中的端点配置为使用 DNS 别名的 DIRECT OS 格式名

我已将HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters\IgnoreOSNameValidation注册表项设置为 1,并且我什至添加CRM_SERVER了该项HKEY_Local_Machine\System\CurrentControlSet\Services\LanmanServer\Parameters\OptionalNames

我已经重启了至少十几次!

每当我的客户端向队列发送消息时,它都会在传出队列上结束,而不是在本地队列上。使用正确的机器名称或本地主机可以正常工作。

我错过了什么吗?

0 投票
0 回答
117 浏览

azure - Azure ServiceBus 动态激活,如 MSMQ

我们有一个现有的应用程序,它使用 MSMQ 和 WCF 服务从队列接收消息并处理它们。

WCF 服务在 IIS 中配置为 WAS 服务,并使用 msmqIntegrationBinding 绑定。将消息发送到队列时会自动调用该服务。

现在我们需要使用 Azure 服务总线来实现相同的功能,作为向云过渡的一部分。

我检查了这篇http://blogs.msdn.com/b/tomholl/archive/2011/10/07/using-service-bus-queues-with-wcf.aspx文章。

当消息发送到队列时会调用该服务,但它使用 ChannelFactory 和来自我的客户端应用程序中服务的合同程序集。

在 MSMQ 绑定中,我的客户端不需要了解有关服务的任何信息。它是自动推断的,因为服务的名称和队列的名称需要完全相同。

简而言之,我需要能够将消息发送到服务总线,并且 IIS/WAS 应该负责调用适当的服务,就像它与 MSMQ 一起工作的方式一样。

是否可以使用 Azure 服务总线进行类似 MSMQ 的激活?

0 投票
1 回答
49 浏览

wcf - msmq 身份验证减慢加密速度

发送加密的 msmq 消息时,身份验证似乎会降低速度(从 2500 msg/sec 到 150 msgs/sec)。

System.Messaging.MessageQueue 和带有 msmqIntegration 绑定的 Wcf 客户端似乎都是这种情况。

我的要求是加密传输,无需身份验证即可。我更喜欢 WCF 客户端,因为可以从 app.config 更改设置。

msmqIntegrationBinding 有没有办法在没有身份验证的情况下进行传输加密?

我发现通过在使用系统时注释掉以下内容,身份验证会减慢我的速度。

如果我打开身份验证,发送又变慢了!

感谢您的帮助!

0 投票
1 回答
502 浏览

c# - 是否可以使用通用 WCF 服务来处理多个 MSMQ 端点?

我们的团队正在构建一个服务,用于使用 WCF(通过msmqIntegrationBinding)处理来自多个远程 MSMQ 队列的消息。我们希望能够根据它们通常消耗的资源量来限制不同的队列组(通过serviceThrottling )。

我的想法是让单一服务​​类型处理来自多个队列的消息,并根据消息类型确定如何处理它们。不幸的是,我无法找到一种通用的使用方式,MsmqMessage<T>因为它期望消息的确切类型。MsmqMessage<object>不起作用,因为我认为它正在尝试为 type 找到序列化程序object

关于如何完成这项工作或替代方法的任何想法?最好仍然使用 WCF,因为它已经内置了死信处理。

示例配置:

合同示例:

0 投票
1 回答
471 浏览

c# - 通过 msmqIntegrationBinding 向 msmq 队列发送消息

所以我正在尝试配置我的客户端代码以将消息发送到 MSMQ 队列。我按照此处描述的步骤操作:https ://msdn.microsoft.com/en-us/library/ms789008(v=vs.100).aspx?cs-save-lang=1&cs-lang=csharp和我的客户端代码如下所示:

应用程序配置:

IDataRelayService.cs:

IDataRelayServiceChannel.cs:

它编译和运行没有问题,但是当我打开 evet 查看器时,没有为 MSMQ 记录任何事件。如果我打开计算机管理工具查看队列,它会在我的队列中显示 0 条消息。我在这里做错了什么?

编辑:

我为 MSMQ 启用了事件跟踪,这是事件查看器向我显示的内容:

在此处输入图像描述

0 投票
1 回答
64 浏览

c# - 在 MSMQ 集成绑定中处理 NormalizePoisonException

晚上好,

我有一个 MSMQ 队列,它使用 msmqIntegrationBinding 将消息推送到 WCF 服务。receiveErrorHandling 属性设置为默认值“Fault”。有时,MSMQ 会尝试反序列化消息:

消息永远不会到达服务中的方法:

[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)] public void ProcessMessage(MsmqMessage<MyMessage> msg) {...

该服务具有以下属性:

绑定中设置了死信队列:

该消息不由 WCF 服务处理,而是直接转储到日志队列中。它不会留在消息队列中或移动到死信队列。我已尝试实现此处详述的 IErrorHandler,但没有达到。

以传统方式接收来自 MSMQ 的消息时...

如果我如上所述设置格式化程序,它就可以工作。但是,尽管在绑定中设置了 serializationFormat="Xml" ,但它仍然无法反序列化。

我肯定错过了一些东西。我到处都用谷歌搜索过。任何帮助是极大的赞赏。

谢谢。

0 投票
1 回答
21 浏览

msmq - 在更多应用程序命中时在 msmq 队列上运行时超时

我们有通过 msmq 处理应用程序的批处理文件,当应用程序计数更多时,例如:一次 40,当它在队列中选择应用程序时,剩余的应用程序正在超时,因为所有应用程序的等待时间是相同的..