问题标签 [netmsmqbinding]

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 投票
2 回答
1017 浏览

wcf - MSMQ 会损坏吗?

我刚从一家拥有本土云解决方案的公司开始。他们围绕 SQL Server 构建了他们的中央队列机制。在与技术总监交谈时,他告诉我他们过去曾尝试过 MSMQ,但遇到了大容量队列损坏的问题。我一直在互联网上进行搜索,但找不到有关此问题的任何信息。

有没有人听说过这样的事情?有没有这方面的好文章?

此外,他们没有为此目的使用 WCF。WCF 的事务性质会解决这些腐败问题吗?

0 投票
1 回答
602 浏览

c# - 如何为 WCF 服务动态设置 TransactionTimeout?

我需要能够为在 MSMQ 上运行的 WCF 服务动态设置事务超时。我正在关注 MSDN 上的示例:http: //msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.channeldispatcher.transactiontimeout.aspx。但是,我设置的超时似乎不起作用。

我用来设置TransactionTimeout属性的代码如下:

当我运行我的服务并在我的服务实现中延迟 2 分钟时,当我尝试写入另一个 MSMQ 队列时收到一个事务登记错误:

异常:发送到队列时发生错误:指定的事务不能被登记。(-1072824232, 0xc00e0058)。确保 MSMQ 已安装并正在运行。如果要发送到本地队列,请确保队列存在并具有所需的访问模式和授权。

过去有没有人能让这个工作?任何想法将不胜感激。

先感谢您。

0 投票
1 回答
1366 浏览

msmq - 如何接收 MSMQ 消息

什么是接收 MSMQ 消息的最佳方式。

我使用了以下代码,但是在收到 MSMQ 消息后没有在队列中删除

但我无法接收消息。

如何接收这些消息。

0 投票
1 回答
550 浏览

wcf - 我应该使用 MsmqIntegrationBinding 还是 netMsmqBinding?

我的公司购买了第三方应用程序。没有文档,没有支持。这个应用程序正在使用 .net,它创建了一个队列。

我需要编写一个应用程序来在消息到达队列后立即获取它。

我应该使用哪种绑定?我阅读了这两种绑定之间的区别。仍然困惑使用哪一个。

0 投票
1 回答
132 浏览

wcf - 如何使用 Fitnesse 测试 OneWay WCF 操作

在我们当前的应用程序中,我们正在尝试使用 WCF netMSMQBinding,它需要将 Operation Contract 标记为 One Way。

我们也在尝试使用 Fitnesse 作为我们的测试引擎,在我们的测试用例中,我们需要对场景进行端到端的测试,这意味着我们不能使用 One Way Operations,因为它们会在消息放入后立即返回queue 和 Fitnesse 将尝试断言结果,但实际消息可能尚未处理,也可能尚未处理。因此,如果我们使用单向操作,那么我们需要以某种方式等待它的执行完成。

方法尝试/研究..

  1. 通过读取配置在托管时更改 OperationDescription,以便在 Fitnesse IsOneWay 中托管时为 False,但在生产中 IsOneWay 为 True,然后用户 MSMQ 绑定仅在生产和测试中使用 tcp 或 netnamedpipe。

    我们尝试在打开服务之前创建自定义 ServiceHost 并更改 OperationDescription,但在 OperationDescription 类中 IsOneWay 是只读属性,通过查看 .Net Framework 代码,它返回消息计数。在我看来,我必须重写 Service Host 的 CreateDescription 操作并且必须提供自定义实现。它似乎

  2. 在 Fitnesse 中创建一个 Monitor Fixture,它会以某种方式等待消息被处理。

    方法 1:创建存储 MessageId 和已完成状态的自定义数据库表,并在每个消息处理结束时输入该表中的记录。所以现在fitnesse fixture可以轮询表并等待执行完成。

    方法 2:以某种方式轮询 MSMQ 并知道何时处理消息。我们仍在重新研究如何使其发挥作用。

请就当前方法或任何新方法提出任何建议。

0 投票
0 回答
273 浏览

wcf - 关闭 WCF 服务(ServiceHost)并不像看起来那么优雅

当我打电话时serviceHost.Close(),即使我设置了超时值serviceHost.Close(TimeSpan.FromMinutes(10)),虽然它停止接收消息,但我的一两条消息似乎不时丢失。

我希望我的服务在操作过程中停止,但处理已收到的其余消息。有没有办法在消息仍在处理时优雅地关闭服务?

我已经将 app.config 中的closeTimeoutand设置receiveTimeout为 10 分钟,也可以使用,RequestAdditionalTime(600000)但我仍然遇到这个问题。它不会在 10 分钟内关闭,而是最多 1 分钟。

我使用的绑定是netMsmqBinding

编辑:

ServiceBase我通过在方法中添加一个while语句暂时解决了这个问题OnStop,如果该过程没有完成,那么它将继续循环。这似乎是一个肮脏的黑客,但它现在有效。让我知道是否有更简洁的方式来优雅地结束它。

0 投票
0 回答
51 浏览

workflow - “netMsmqBinding”丢失消息

我有一个 WF4,它托管在 Windows 服务中并与 netMsmqBinding 一起使用。服务启动时一切正常。该服务读取私有队列并处理消息 okey。

问题是当 Windows 服务停止时,我执行客户端并将消息放入队列中。但是,当我随后启动 Windows 服务时,消息从队列中消失,但从未开始处理。如果我在服务启动的情况下将其他消息发送到队列,它会处理正常,但是当服务停止时,我会丢失所有进入队列的消息。

0 投票
1 回答
482 浏览

http - 如何让 MSMQ over HTTP 不在“默认网站”上工作

真的是在标题里......

我已经让 MSMQ 在 DEFAULT 网站上通过 HTTP 接收消息。它只是分配了一个 IP 地址。

我需要能够使用特定的 url 将消息推送到队列中(在生产中不会被代理等阻止)。

问题是,MSMQ 只安装到“默认网站”。而我在其他地方安装它的微弱尝试都失败了。

  1. 将 net.msmq 和 msmsq.formatname 的绑定添加到“非默认网站”,我使用“绑定信息”作为“本地主机”,因为它适用于“默认网站”。
  2. 在非默认网站上创建了一个 Web 应用程序;指向同一个文件夹 (inetpub\wwwrot\msmq)。[我想这是它不起作用的地方,这应该如何“神奇地”起作用?
  3. 我将 net.msmq 和 msmsq.formatname 协议添加到我在“非默认”网站上称为 MSMQ 的“Web 应用程序”中。

上述步骤基本相同,我也这样做了,因为运行此处找到的各种脚本:http: //channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Configuring-WAS-for-TCP- Endpoints/http://geekswithblogs.net/sathya/archive/2011/08/17/the-protocol-net.msmq-is-not-supported.aspx

都没有喜悦。

我只需要使用特定域来接收我的 msmq http 消息,任何帮助表示赞赏。

PS,在生产中,它还将在域上具有 SSL 证书。(在赢服务器 2008 r2 上)

0 投票
0 回答
3853 浏览

msmq - 分布式事务协调器 - 底层提供程序在打开时失败

我在同一台服务器上有应用程序 A 和应用程序 B。应用程序 A 正在使用 netmsmqbinding 和私有队列调用位于应用程序 B 中的 WCF 服务。B的被调用的服务方法是使用实​​体框架来调用数据库。但是,在 B 中抛出了此异常:

可能的原因是:存在防火墙并且它对 MSDTC 进程没有异常,两台机器无法通过它们的 NetBIOS 名称找到彼此,或者两个事务管理器之一未启用对网络事务的支持。

这是 DTC 设置 - http://postimg.org/image/rzqxf17t3/

服务器系统管理员已向我保证这不是防火墙问题。因此,我认为我应该检查“两台机器无法通过它们的 NetBIOS 名称找到彼此”的这部分异常消息。

总结一下,我的问题是:

  1. 如何检查系统管理员是否告诉我真相并检查应用程序和数据库服务器之间的端口是否打开?

  2. 如何检查问题是否与 NetBIOS 名称无关?

  3. 如果计算机的 NetBIOS 名称不可见,我该怎么办?

如果我错过了提供一些有价值的信息,请写信给我,我会添加它。

先感谢您!

0 投票
1 回答
1053 浏览

c# - 在 Windows 应用商店应用程序中使用 MSMQ 的替代方案

我最近发现Windows 应用商店应用程序不支持NetMsmqBinding,有没有其他方法可以实现类似的从平板电脑向主机排队消息的系统?

谢谢!