我正在尝试使用Windows服务从RabbitMQ读取新消息,但是接收新消息的事件不会发射.该服务可以在调试模式下作为控制台应用程序启动.在这种情况下,事件会发射,我可以阅读新消息. 该服务是与我用来登录Windows的用户启动的. 这是Onstart服务事件处理程序中代码的一部分 var factory = new ConnectionFactory() { HostName = "localhost" }; using (var conn = factory.CreateConnection()) { using (var channel = conn.CreateModel()) { channel.ExchangeDeclare("sm_posts", "fanout");
以下是关于 rabbitmq 的编程技术问答
我有一个兔子消费者应用程序实现" .NET中的发布/订阅模式,它可以完美地作为控制台应用程序运行,但是当我将其部署为Windows服务时,似乎并没有将数据保存到MongoDB中. protected override void OnStart(string[] args) { try { var connectionString = "mongodb://localhost"; var client = new MongoClient(connectionString); var factory = new ConnectionFactory() { HostName = "localhost" }; using (var connection = factory.CreateConnection())
我有一个C#代码,它在Windows Server 2012 R2上安装RabbitMQ 3.7.4,Erlang 20.2,我需要知道何时开始应用程序(不是服务).运行rabbitmq-service install和rabbitmq-service start后,我正在寻找一条命令行,该命令行指示该应用程序正在运行.我知道wait pid_file, wait --pid pid命令,但无法在计算机上找到PID文件.文档说: 此命令将等待RabbitMQ应用程序从节点开始.如果指定了pidfile,它将等待创建PID文件 指定位置? rabbitmq-echopid.bat返回: 系统无法找到指定的路径. 解决方案 在Windows上,RabbitMQ默认不创建PID文件,因此您必须发现PID,然后将其传递为参数:rabbitmqctl.bat wait -P PID 要发现PID,您可以使用RabbitMQ节点的名称运行以下内容: .\r
我的RabbitMQ应用程序正在Windows 2012 Server上运行,我随机使用此错误. Exception Type: RabbitMQ.Client.Exceptions.BrokerUnreachableException None of the specified endpoints were reachable at RabbitMQ.Client.ConnectionFactory.CreateConnection() at Program.Main(String[] args) Stream does not support writing. at System.IO.BufferedStream.EnsureCanWrite() at System.IO.BufferedStream.Write(Byte[] array, Int32 offset, Int32 count) at RabbitMQ.Clien
我已经在Windows Server 2012上安装了RabbitMQ 3.5.5作为首先安装Erlang(32位),然后遵循RabbitMQ手册安装指令( https://www.rabbitmq.com/install-windows-manual.html ) Windows Service启动正常,但没有任何连接. 当我运行rabbitmq_server-3.5.5\sbin\rabbitmqctl.bat status时,我将获得以下输出: 兔子@xxxxxxxx: 在xxxxxxxx上连接到EPMD(端口4369) EPMD报告在端口25672上运行的节点"兔子" TCP连接成功,但Erlang分布失败 建议:主机名不匹配? 建议:cookie设置正确吗? 建议:Erlang分布是否使用TLS? 当前节点详细信息: 节点名称:'rabbitmq-cli-1444@xxxxxxxx' 主dir:c:\ users \ userxx
我的一台服务器上的兔子兔子正在运行,并试图通过PHP连接到它.我正在Windows7机器上开发,我的第一行代码读取: $ cnn = new amqpConnection(); 它给了我错误: 致命错误:在 中找不到类" AMQPConnection"类 我知道这是我需要安装的东西,但是这是什么?我是PHP的新手,所以一点帮助会很好. ps:我可以通过rabbitmq admin Web界面连接到RMQ服务器. 谢谢 杰克 解决方案 我正在Windows7机器上开发 使用该特定代码,您可能会不幸.该类来自安装说明,它说: 向Windows用户注释:此扩展名当前不支持Windows,因为 您将要使用另一个库与您的消息排队交谈. 其他解决方案 php_amqp 1.4.0的安装指南(稳定版本): 从 https://pecl.php下载适用于您的php版本的适当软件包. net/package/amqp/1.4.0/windows
我计划在Windows 10和其他服务(包括自托管ASP.NET应用程序)上运行RabbitMQ.我不想从不想在这里解释的原因使用Windows Server. 击中Windows 10的10个并发连接限制后,我会遇到问题吗? 消费者数量甚至可以达到30-50. 解决方案 根据Windows 10的Microsoft Eula: (iii)设备连接.您可以允许多达20个其他设备访问许可设备上安装的软件,以使用以下软件功能:文件服务,打印服务,Internet信息服务以及互联网连接共享和电话共享和电话服务.您可以允许任何数量的设备访问许可设备上的软件,以在设备之间同步数据.但是,本节并不意味着您有权安装软件或使用软件的主要功能(除本节中列出的功能外),在任何其他设备上. 因此,极限不是10个连接.该限制既可以作为法律义务,又是某些服务的编程义务(例如,IIS,但不是自我托管的ASP.NET). 由于您要问的可能涉及EULA,因此您应该真正获得适当的法律
我正在尝试通过关注这些说明 . 但是,在尝试通过PowerShell命令启用管理插件时: ./rabbitmq-plugins enable rabbitmq_management 我得到以下内容: The directory name is invalid. The filename, directory name, or volume label syntax is incorrect. Unsupported node name: hostname is invalid (possibly contains unsupported characters). If using FQDN node names, use the -l / --longnames argument. 我已经尝试设置HOMEDRIVE=C:按照博客的建议. 我在做什么错? 编辑 根据下面的评论,我做了以下内容: PS C:\program files\rab
我已经安装了RabbitMQ,但是当我尝试在CMD中使用rabbitmqctl status时,我将有下一个结果: D:\RabbitMQ\rabbitmq_server-3.6.2\sbin>rabbitmqctl status Error: Failed to initialize erlang distribution: {{shutdown, {failed_to_start_child, net_kernel, {'EXIT',nodistribution}}}, {child,undefined, net_sup_dynamic, {erl_distribution, start_link, [['rabbitmq-cli-70', shortnames]]}, permanent,1000,supervisor, [erl_distribution]}}. 带有erlang的文件夹:d:\ erl7.3 我有以下环境变量: erlang_home:d:\
遇到一个奇怪的错误对我来说没有意义. RABBITMQ拒绝允许使用特定计算机上的EasyNetq从.NET应用程序访问,当它在另一台计算机上正常工作时. 客户端应用显然可以解决DNS,权限很开放,并且在另一种情况下起作用. 这是一个不合时宜的兔子安装. RabbitMQ在Linux Amazon实例上运行,而客户端正在Windows Server 2008 Amazon实例运行,并且它可以从Windows 8桌面运行. 我得到了: =错误报告====== 2-jul-2013 :: 11:54:04 ==== 关闭AMQP连接(107.23.30.43:62815-> 10.125.160.196:5672): {handshake_error,打开,0, {amqp_error,access_refuse, "访问vhost'/\ r \ n'拒绝用户'来宾'", 'Connection.open'}} 有什么想法? 谢谢, 丹尼尔
我知道有关我的问题的资源很多,但我仍然无法确切地在单个Windows机器上安装2种兔子服务. 我知道有两种运行兔子的方法.作为服务或应用程序.当我们安装RMQ时,默认情况下将以" Rabbitmq"的名称安装一个sevice,我们始终可以运行.其他方式,您可以使用以下命令并运行RMQ的另一个实例. set RABBITMQ_NODE_PORT=5673 set RABBITMQ_NODENAME=test1 set RABBITMQ_SERVICE_NAME=test1 set RABBITMQ_SERVER_START_ARGS=-rabbitmq_management listener [{port,15673}] call rabbitmq-server -detached 使用上述命令,我可以运行第二个实例,但是一旦用户注销,RMQ就会停止.因此,我尝试创建BAT文件并将其注册为服务并启动它.但是,即使此后,RMQ仍会在用户登录时停止. 一些人可以通过确切的
如何重新配置兔子不使用%appdata%作为配置文件? 跟进问题 rabbitmq:更改Windows Server上的端口P> 解决方案 如所述,如何重新使用兔子MQ使用任意目录.这将在访问数据库文件等方面具有一些好处 在您的Windows环境设置中,您需要重新定义RABBITMQ_BASE,我已经用c:\rmq进行了测试( 接下来,看来您需要运行一些命令,我无法在安装期间或事先安装过程中定位正确的目录. 因此,运行以下命令,基本上它再次重新安装了服务: c:\ program Files \ Rabbitmq Server \ Rabbitmq_server-3.6.14 \ sbin> rabbitmq-service.bat remove remove c:\ program Files \ Rabbitmq Server \ Rabbitmq_server-3.6.14 \ SBIN> RABBITMQ-SERVICE.BAT安装
我正在尝试在Windows服务器上设置RabbitMQ群集,这需要使用共享的Erlang Cookie文件.根据文档,我要做的就是确保不同机器上的根目录包含相同的.erlang.cookie文件.因此,我在机器上找到了这些文件,并使用相同的共享版本覆盖它们. 之后,所有RabbitMQCTL命令在机器上失败,其新文件版本"无法连接到节点..."错误消息.我试图重新启动RabbitMQ Windows服务,但仍然抱怨RabbitMQCTL.我什至还重新安装了该机器上的RabbitMQ,但后来.erlang.cookie重置为旧版本.每当我尝试使用新版本的Cookie文件时,RabbitMQCTL都会失败.恢复旧版本时,它可以正常工作. 基本上,我被卡住了,直到解决此问题之前,我无法进行集群设置.任何帮助都将不胜感激. 更新:收到RabbitMQ的答案: " RabbitMQCTL将从用户主目录中拾取cookie,而该服务将从C:\ Windows拾取它.因此,您需要将它们
我正在尝试从教程中运行生产者示例,但是RabbitMQ封闭连接,例外: 异常抛出:'rabbitmq.client.exceptions.operationinterruptedexception'in rabbitmq.client.dll " rabbitmq.client.exceptions.operationInterruptedException"类型的未经处理的例外发生在rabbitmq.client.dll中 AMQP操作被中断:由库发起,代码= 541,text ='意外异常',classID = 0,methodId = 0,cause = system.io.io.io.io.io.ioexception:无法从运输连接读取数据:现有的连接被远程主机强行关闭. ---> system.net.sockets.socketException(10054):现有连接被远程主机强行关闭. 代码是: var factory = new Connection
我正在与Windows Server 2012,Erlang 19.2和RabbitMQ 3.6.6合作.我很难使用TLS配置端点之间的连接.我已经尝试了所有答案,以及所有RabbitMQ Docs 在当我对故障排除进行故障排除以查看是否可以通过端口8443上的对等连接进行对等连接时,它可以正常工作.然后尝试连接到港口5671上的经纪人失败,说握手不好. 将RabbitMQ Config File转换为8443无能为力,除了让同伴在5671上工作并在8443上失败. 我的配置文件: [ {rabbit, [ {ssl_listeners, [5671]}, {ssl_options, [{cacertfile,"C:\\rabbitcerts\\testca\\cacert.pem"}, {certfile,"C:\\rabbitcerts\\server\\cert.pem"},
我有多个在不同机器上运行的兔子节点.安装每个节点后,我无法为每个节点指定一个通用的cookie使用,因此我必须返回并手动更改文件.erlang.cookie.我的问题是,在执行此操作之后,我会收到矛盾的错误消息.如果我做兔子状态 我收到以下错误: 诊断 试图联系:['兔子@nc-mso-test01'] 兔子@nc-mso-test01: *连接到EPMD(端口4369) NC-MSO-TEST01 * EPMD报告在端口25672上运行的节点"兔子" * TCP连接成功,但Erlang分布失败 身份验证失败(被远程节点拒绝),请检查 Erlang cookie 当前节点详细信息: - 节点名称:'RabbitMQ-CLI-45@NC-MSO-TEST01' - 家dir:c:\ users \ jol -cookie哈希:9/hx6l+wlqv3nkmsdfqbog == 无论我叫什么脚本,我都会收到相同的错误.我尝试重新启动该服务,通过Rabbit
RabbitMQ Windows服务将无法启动: C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.0.4\sbin>rabbitmq-service.bat start C:\Program Files (x86)\erl5.10.1\erts-5.10.1\bin\erlsrv: Failed to start service RabbitMQ. Error: The process terminated unexpectedly. 我可以在没有任何问题的情况下运行rabbitmq-server.bat. 试图启动服务时,没有将日志条目用于%appdata%\ rabbitmq \ log \ directory. 如何使它起作用? 解决方案 解决问题! 我的IT部门已将%appdata%映射到网络共享,似乎RabbitMQ脚本无法使用. 我以这种方式解决了问题:将环境变量" r
我在Windows 2008 R2上使用Erlang OTP 17.1运行RabbitMQ v3.3.5.我的开发和质量检查环境是独立的.我的分期和生产环境聚集. 我发现这个问题经常发生在RabbitMQ服务正在运行的地方,RabbitMQ管理控制台正在看到所有内容,但是当我尝试从命令行中运行RabbitMQCTL时,它会失败,错误地说节点是在本地尝试的(在本地尝试过)在远程服务器上). 如果我重新启动Windows Service,就可以解决此问题. 我在兔子错误日志中看到没有错误消息.最后一条消息表明该节点已上升. 下面是我最近在我们的登台Windows群集的节点2上遇到的问题的示例输出: PS C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.3.5\sbin> .\rabbitmqctl.bat status Status of node rabbit@MYSERVER2 ... Err
我是RabbitMQ的初学者,我遇到了一些问题来启用管理插件. RabbitMQ服务器正在启动并运行,但是当我尝试启用插件时,我会在Windows命令提示符中获取此内容: C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.1.5\sbin>rabbitmq-plugi ns.bat enable rabbitmq_management {error_logger,{{2013,9,6},{12,46,51}},"Failed to create cookie file 'u:/.erlang. cookie': enoent",[]} {error_logger,{{2013,9,6},{12,46,51}},crash_report,[[{initial_call,{auth,init,[' Argument__1']}},{pid,},{registered_name,[]},{error_info