C# 为什么Azure服务总线认为未设置DefaultTimeToLive属性?
我正在设置一个小应用程序来测试新创建的基本层Azure服务总线。我正在使用Masstransit建立一个示例出版商:C# 为什么Azure服务总线认为未设置DefaultTimeToLive属性?,c#,azure,azureservicebus,masstransit,C#,Azure,Azureservicebus,Masstransit,我正在设置一个小应用程序来测试新创建的基本层Azure服务总线。我正在使用Masstransit建立一个示例出版商: ServiceBusFactory.New(sbc => { var queueUri = "azure-sb://" + azureNamespace + "/Sample_TestPub"; sbc.UseAzureS
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);
});
text=Console.ReadLine();
var newWhat=newsomethingrequest
{
什么=文本,
When=DateTime.Now
};
ISomethingResponse=null;
bus.PublishRequest(newWhat,cfg=>
{
Handle(r=>response=r);
});
在PublishRequest()上,我收到以下错误:
azure sb://namespace/Sample_TestPub=>到主机的连接无效
内部异常:{“远程服务器返回错误:(400)错误
Request.SubCode=40000。的属性值
“DefaultMessageTimeToLive”必须介于00:00:01和14.00:00:00之间
当命名空间“namespace”使用“Basic”层时。\r\n参数
姓名:DefaultMessageTimeToLive。
TrackingId:67c96bcc-e376-429a-8f22-79227e89f935_G24,时间戳:2/3/2015
凌晨2:56:33“}
我还没有通过Azure门户配置我的总线-我缺少什么吗?SetDefaultMessageTimeToLive()调用是否与我认为的不一样?我使用NServiceBus的示例应用程序时遇到了相同的错误。当我将Azure服务总线切换到标准层而不是基本层时,它开始工作。我不知道为什么。然而,我的直觉表明错误文本与问题不完全匹配。看起来您不需要至少1分钟的TTL 00:00:01应该表示“1秒”(对于C,在LinqPad中,try TimeSpan.FromSeconds(1)=TimeSpan.Parse(“00:00:01”)应该返回True)无论哪种方式,我都尝试了更大的时间跨度,但结果相同。我无法在ASB传输上回答这个问题,因为我没有编写它,但我知道MassTransit 3具有早期服务总线支持,但它尚未准备好用于生产。