Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止MassTransit为使用者主机创建RabbitMQ交换_Rabbitmq_Masstransit - Fatal编程技术网

防止MassTransit为使用者主机创建RabbitMQ交换

防止MassTransit为使用者主机创建RabbitMQ交换,rabbitmq,masstransit,Rabbitmq,Masstransit,是否可以将MassTransit配置为不为使用者主机创建RabbitMQ交换?我的RabbitMQ用户没有足够的权限在使用队列所在的主机上声明exchange,因此MassTransit无法启动,出现以下错误: 未处理的异常:MassTransit.RabbitMqTransport.RabbitMqConnectionException: 操作中断-->RabbitMQ.Client.Exceptions.OperationInterruptedExcept 离子:AMQP操作被中断:AMQP

是否可以将MassTransit配置为不为使用者主机创建RabbitMQ交换?我的RabbitMQ用户没有足够的权限在使用队列所在的主机上声明exchange,因此MassTransit无法启动,出现以下错误:

未处理的异常:MassTransit.RabbitMqTransport.RabbitMqConnectionException:
操作中断-->RabbitMQ.Client.Exceptions.OperationInterruptedExcept
离子:AMQP操作被中断:AMQP关闭原因,由对等方发起,c
ode=403,text=“访问被拒绝-访问exchange'***'i
n为用户“***”拒绝的vhost“***”,classId=
40,methodId=10,原因=

以下是我使用的代码:

var bus=bus.Factory.CreateUsingRabbitMq(sbc=>
{
var host=sbc.host(主机:“***”,端口:5671,虚拟主机:“***”,配置:configurator=>
{
configurator.UseSsl(sslConfigurator=>
{
sslConfigurator.Certificate=证书;
sslConfigurator.UseCertificateAssAuthenticationIdentity=true;
sslConfigurator.ServerName=“***”;
});
});
sbc.ReceiveEndpoint(主机,“***”,endpointConfigurator=>
{
endpointConfigurator.Consumer();
});

});

如果没有要绑定的exchange,您希望它如何工作?MassTransit必须能够声明exchange和队列,因此允许对您的连接使用这些权限,否则它将无法工作。@AlexeyZimarev消费者应该从现有队列中读取,队列的exchange和绑定应该由生产者创建(外部服务)。您使用的是默认配置,它会自动配置所有内容。如果您想使用预配置的exchange,则需要使用显式绑定,但如果您的凭据甚至不允许创建绑定,则无论如何都很难实现。