C# 为什么Azure服务总线认为未设置DefaultTimeToLive属性?

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

我正在设置一个小应用程序来测试新创建的基本层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);
                });
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具有早期服务总线支持,但它尚未准备好用于生产。