我正在设置一个小应用程序来测试新创建的基本层Azure服务总线。我正在使用Masstransit建立一个样本发布者:
ServiceBusFactory.New(sbc =>
{
var queueUri = "azure-sb://" + azureNamespace + "/Sample_TestPub";
sbc.UseAzureServiceBus(a =>
{
a.SetDefaultMessageTimeToLive(TimeSpan.FromSeconds(30));
a.ConfigureNamespace(azureNamespace ,
azureNs =>
{
azureNs.SetKey(sharedKey);
azureNs.SetKeyName(keyName);
azureNs.Validate();
});
});
sbc.ReceiveFrom(queueUri);
sbc.UseAzureServiceBusRouting();
})
)
我使用以下代码发布:
text = Console.ReadLine();
var newWhat = new SomethingRequest
{
What = text,
When = DateTime.Now
};
ISomethingResponse response = null;
bus.PublishRequest(newWhat, cfg =>
{
cfg.Handle<ISomethingResponse>(r => response = r);
});
On PublishRequest()我收到以下错误:
azure-sb:// namespace / Sample_TestPub =&gt;与主机的连接无效
内部异常:{“远程服务器返回错误:(400)错误 请求。子码= 40000。属性值为 'DefaultMessageTimeToLive'必须介于00:00:01和14.00:00:00之间 命名空间“命名空间”使用“基本”层时。\ r \ n \ nParameter name:DefaultMessageTimeToLive。 TrackingId:67c96bcc-e376-429a-8f22-79227e89f935_G24,时间戳:2015年2月3日 2:56:33 AM“}
我还没有通过Azure门户配置我的总线 - 是否有我遗漏的东西? SetDefaultMessageTimeToLive()调用是否不符合我的想法?
答案 0 :(得分:1)
我使用NServiceBus中的示例应用程序得到了同样的错误。当我将Azure Service Bus切换到标准层而不是Basic 时,它开始工作。我不知道为什么。然而,我的直觉表明错误的文本与问题不完全匹配。