我刚刚尝试升级到 serviceBus 版本 4.1.3,现在我的 SAS 生成令牌失败。我正在使用这些令牌连接服务总线中的 WCF 中继。
我得到的错误是“超时间隔必须小于 2^32-2”
该令牌绝对适用于 3.4.3 版本。
当我生成令牌时,我正在计算 1970 年到 3000 年之间的 timeToLive。我相信这是我的问题,就好像我将其设置为一个较低的值一样,我可以生成有效的新令牌(10 天)。这对我不起作用,因为我需要不会过期的令牌。
现在有谁知道 timeToLive 是如何工作的。最大值是多少,是否有任何解决方法可以让我继续使用我的 SAS 令牌。它们已经生成并在现场 - 因此重新生成它们将很困难。
我正在使用的代码如下:
Dim TimeToLive = TimeSpan.FromDays(365) 'This will fail
Dim serviceUri = ServiceBusEnvironment.CreateServiceUri("https",
serviceNamespace,
servicePath).ToString().Trim("/")
Dim sasKey As String = SharedAccessSignatureTokenProvider.GetSharedAccessSignature(
SharedAccessKeyName,
SharedAccessKeyPrimary,
serviceUri,
TimeToLive)
生成的 sasKey 在使用时会失败。如果我将 TTL 设置为 10 天,它会起作用。
谢谢你的帮助