C# .Net代码中的Masstransit RabbitMQ用户名密码配置

C# .Net代码中的Masstransit RabbitMQ用户名密码配置,c#,.net,rabbitmq,masstransit,C#,.net,Rabbitmq,Masstransit,我使用Masstransit文档中指定的推荐方法在总线创建期间指定RabbitMQ用户名和密码 以下是总线配置的代码片段: var compensateAddress = BuildQueueUri(Settings.BaseUri, Settings.Compensate); var ExecuteAddress = BuildQueueUri(Settings.BaseUri, Settings.Execute); var RabbitMqURI = new Uri(Settings.Bas

我使用Masstransit文档中指定的推荐方法在总线创建期间指定RabbitMQ用户名和密码

以下是总线配置的代码片段:

var compensateAddress = BuildQueueUri(Settings.BaseUri, Settings.Compensate);
var ExecuteAddress = BuildQueueUri(Settings.BaseUri, Settings.Execute);
var RabbitMqURI = new Uri(Settings.BaseUri + "/QueueName");
var RabbitMqUsername = Settings.RabbitMqUsername;
var RabbitMqPassword = Settings.RabbitMqPassword;

IServiceBus _bus;    

_bus = ServiceBusFactory.New(x =>
            {
                x.UseRabbitMq(r =>
                {
                    r.ConfigureHost(RabbitMqURI, h =>
                    {
                        h.SetUsername(RabbitMqUsername);
                        h.SetPassword(RabbitMqPassword);
                    });
                });                
                x.ReceiveFrom(ExecuteAddress);
                x.Subscribe(s => s.Instance(_host));
            });
当我启动应用程序时,会出现以下错误:

路径可以为空,也可以是以下字符的序列:字母、数字、连字符、下划线、句点或冒号

有什么问题吗

Masstransit版本2.9.0


RabbitMQ.Client 3.4.0版

以下是我能够使用的代码
MT 2.10 兔子3.5.3 Erlang 18.0 64位

 public class YourMessage { public string Text { get; set; } }
    internal class Program
    {
        private static void Main(string[] args)
        {
            var hostAddress = new Uri("rabbitmq://localhost/learningmt_orderservice");
            Bus.Initialize(sbc =>
            {
                sbc.UseRabbitMq(rabbit =>
                {

                    rabbit.ConfigureHost(hostAddress,
                        chost =>
                        {
                            chost.SetUsername("guest");
                            chost.SetPassword("guest");
                        });
                    rabbit.Validate();
                });

                sbc.ReceiveFrom(hostAddress.AbsoluteUri);
                sbc.Subscribe(subs =>
                {
                    subs.Handler<YourMessage>(msg => Console.WriteLine(msg.Text));
                });
            });

            Bus.Instance.Publish(new YourMessage {Text = "Hi"});
        }
    }
public类YourMessage{public string Text{get;set;}
内部课程计划
{
私有静态void Main(字符串[]args)
{
var hostAddress=新Uri(“rabbitmq://localhost/learningmt_orderservice");
总线初始化(sbc=>
{
sbc.UseRabbitMq(rabbit=>
{
rabbit.ConfigureHost(主机地址,
chost=>
{
chost.SetUsername(“来宾”);
选择设置密码(“来宾”);
});
验证();
});
sbc.ReceiveFrom(主机地址.绝对URI);
订阅(subs=>
{
Handler(msg=>Console.WriteLine(msg.Text));
});
});
Publish(newyourmessage{Text=“Hi”});
}
}

ExecuteAddress的值是多少?我怀疑这是否重要,但在我的代码中,
x.ReceiveFrom(…)
代码位于
x.UseRabbitMq
行上方。如果尝试将其向上移动会发生什么?ExecuteAddress只是要发布到的exchange的URI。另外,正如您所说,从接收移动不会改变任何事情。我知道这是一个URI。值是什么?在运行时查看每个变量的实际值会很有帮助。Console.WriteLine,我最好答案是。。。透露。