问题标签 [easynetq]
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.
c# - EasyNetQ Windows 服务消息传递架构无法正常工作
因此,我正在尝试(基于此 EasyNetQ 教程:快速入门 - EasyNetQ)使用涉及发布者和订阅者的简单 EasyNetQ 消息传递架构,它似乎并没有像预期的那样工作。我的发布者和订阅者都是 Visual Studio 2015 中的 Windows 服务项目,它们之间发送的消息是自定义类型 (TextMessage) 的一个实例,它是一个简单的类库,如下所示:
我的发布者看起来像这样:
所以没什么好看的。它所做的只是发布一条 TextMessage 类型的消息并将日志记录到文本文件“PublisherLogFile.txt”中:
订阅者看起来像这样:
也很简单。它所做的只是接收 TextMessage 类型的消息,并将其 Text 属性的值打印到日志文件“SubscriberLogFile.txt”中。问题是它似乎没有收到消息,因为它没有登录到上面的文本文件。看起来我的订阅者中的HandleTextMessage处理程序从未被调用过。这是“SubscriberLogFile.txt”的内容:
另外,查看 RabbitMQ 管理控制台,没有创建连接或通道,只有一个队列:
和 RabbitMQ 日志:
当我第一次做同样的实验时,不同之处在于发布者和订阅者是控制台应用程序而不是 Windows 服务,一切似乎都很好。这里可能是什么问题?
c# - 使用 easynetq 驱动程序连接到 rabbitmq 时出错
我突然用easynetQ驱动程序连接到RabbitMQ没有任何问题。我开始收到此错误
System.ArgumentException 发生消息:抛出异常:System.dll 中的“System.ArgumentException”附加信息:发现或指定的地址均不匹配套接字地址系列。
为什么我突然找不到rabbit mq server。这个问题的根本原因是什么。网络配置没有改变。
rabbitmq - EasyNetQ 排他队列处理
我正在使用 EasyNetQ / Rabbitmq 我正在创建 10 个独占队列,等待消息,不幸的是,所有这些队列都在我的 prog 结束之前处理。
我在怀疑一个BasicCancel
事件。
但我什至不知道我为什么收到它。
RabbitMQ 发送BasicCancel
事件的原因是什么?
问候
c# - 如何从 EasyNetQ 通知 AngularJS 应用程序
所以我有以下架构: Angular SPA(单页应用程序)执行对 .NET Web API 控制器的调用,该控制器将消息发布到 Publisher EasyNetQ 窗口服务,该服务将异步请求发送到名为 Subscriber 的第二个 EasyNetQ 窗口服务,它调用后端类生成SSRS报告,最后将异步响应发送回Publisher。这是有问题的架构图:
到目前为止一切顺利,订阅者收到响应,生成报告,并将消息发送回发布者。以下是 Web API 控制器将报告数据消息发送到发布者的方式:
这就是我从 Publisher 发送请求的方式:
最后,生成报告并从订阅者发送回响应的代码:
虽然这一切都有效,但我还需要一些方法来通知 Angular SPA 已生成报告,以便我可以给用户适当的反馈。这是我有点失落的地方。EasyNetQ 可以与 Angular 代码交互吗?此外,一旦我在 Publisher 中收到响应,我可能会在我的 Web API 控制器中调用一些方法,但仍然存在警告 Angular 代码的问题。有任何想法吗?
.net - EasyNetQ 希望监听器接收所有消息
我想将每条消息都保存到我的数据库中。直接在 RabbitMQ 中,我将创建一个消费者来在我的主要/唯一交换中侦听主题“*”(任何内容)。
在 EasyNetQ 中,每次创建新的 Message 类时,我似乎都必须在我的日志项目中添加一行。我想避免这种情况,所以无论我发送哪条消息,它都会在一个地方被提取并保存到数据库中,以备将来使用,而不必记住添加任何行。
我实现了自己的记录器
但收到的参数似乎只有 RoutingKey、CorrelationId、ConsumerTag、DliveryTag 和 Redelivered。但我(也)想要字符串/文本消息本身。
c# - 具有简单请求响应架构的“请求超时异常”
我有一个非常简单的请求响应体系结构,在该体系结构上出现“请求超时”异常。首先,我从 Web API 控制器向 Windows 服务发送消息,如下所示:
ReportData1 是:
然后在 Windows 服务应用程序中,我订阅 ReportData1 类型的消息,并向第二个 Windows 服务发送同步请求:
我的第二个接收请求并返回响应的 Windows 服务如下所示:
就这样。在我运行这个之后,我得到了这个异常:
第 63 行是这样的:
我的 PublisherLogFile:
和订阅者日志文件:
所以看起来请求被接收并且响应被发回,但是没有任何反应。我只是在 RabbitMQ 管理控制台中收到一个错误。为什么我会收到此错误?
c# - 将消息发送到队列时出错
我正在使用 EasyNetQ 在兔子队列中发送消息。
我有这样的代码
创建总线时连接已打开,但发送消息时出现此错误
AMQP 操作被中断:AMQP 关闭原因,由 Peer 发起,代码 = 406,文本 =“PRECONDITION_FAILED - 队列的不等价参数 'x-max-priority' ....:没有收到,但当前是值 '10' 'long'类型",classId=50,methodId=10,cause=
我使用 x-max-priority: 10 设置队列。我必须在连接字符串中设置其他任何内容吗?
c# - comman 的 C# 泛型类型推断
我必须使用我无法控制的特定 API:
这是来自 EasyNetQ 库的 RabbitMq 的 RPC 包装器
我想有一些方法来定义 TRequest 到 TResponse 关系,这样我就不必像这样每次调用都手动匹配它们:
我想出的解决方案是:
以及它的消费者:
是否可以摆脱 ICommand 标记界面上的 TRequest 类型?
我还担心与标记接口相关的额外成本,然后在实际的库调用中直接从中转换。
任何意见,将不胜感激。