C# .Net代码中的Masstransit RabbitMQ用户名密码配置
我使用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
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,我最好答案是。。。透露。