2017-10-15 7 views
0

バージョン4.1.3のserviceBusにアップグレードしようとしましたが、SASによって生成されたトークンが失敗しました。これらのトークンを使用して、サービスバスのWCFリレーに接続しています。ServiceBus 3.4.3から4.1.3へのアップグレード時にSASトークンが失敗する

私が手にエラーがトークンのは間違いなく、バージョン3.4.3で動作し

「タイムアウト間隔が2^32-2少ないしなければなりません」です。

私はトークンを生成するとき、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日に設定すると、それはうまくいくでしょう。

ご協力ありがとう

答えて

0

あなたの説明によると、私は私の側にもテストデモを作成しました。それはうまくいく。

WindowsAzure.ServiceBus 4.1.3を使用しました。以下のように

enter image description here

マイコード:

Sub Main() 

    Dim serviceNamespace = " " 
    Dim servicePath = " " 
    Dim SharedAccessKeyName = " " 
    Dim SharedAccessKeyPrimary = " " 
    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) 
    Dim mfSettings As New MessagingFactorySettings() 
    mfSettings.TransportType = TransportType.NetMessaging 
    mfSettings.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(sasKey) 
    Dim mf As MessagingFactory = MessagingFactory.Create("sb://serviceNamespace.servicebus.windows.net", mfSettings) 
    ' Create Client 
    Dim client As QueueClient = mf.CreateQueueClient(servicePath) 

    Dim message = New BrokeredMessage("test") 



    client.Send(message) 

End Sub 

結果:

私はそれに8つのメッセージを追加します。あなたがキューを接続している

enter image description here

0

あなたはWCFリレーを接続した場合、あなたはそれが動作しないことがわかります。

マイクロソフトからの返信をご覧ください 私はプロダクトチームから聞きましたが、これはバージョン4.1.3での設計上の動作であるとアドバイスしました。この変更は、SASトークンが定期的に再要求されるべきであるという理解に基づいて、PMおよび管理チームからの決定でした。しかし、これは次回のリリースでもう一度変更されようとしており、より長い有効期限が再びサポートされる予定です。迅速なソリューションを提供できないのは残念です。

関連する問題