2017-10-15 10 views
0

serviceBus 버전 4.1.3으로 업그레이드하려고 시도했지만 SAS에서 생성 된 토큰이 실패했습니다. 이 토큰을 사용하여 서비스 버스의 WCF 릴레이에 연결합니다.ServiceBus 3.4.3에서 4.1.3으로 업그레이드 할 때 SAS 토큰이 실패 함

내가 오류가

토큰의 확실히 버전 3.4.3에서 작동 "시간 제한 간격은 2^32-2 미만이어야합니다"입니다.

토큰을 생성 할 때 1970 년에서 3000 년 사이의 timeToLive를 계산했습니다.이 값을 낮게 설정하면 작동하는 새 토큰 (10 일)을 생성 할 수 있다고 생각합니다. 내가 만료되지 않을 토큰이 필요하기 때문에 이것은 나를 위해 작동하지 않습니다.

아무에게도 timeToLive가 어떻게 작동합니까? 최대 값은 무엇이며 SAS 토큰을 계속 사용할 수있는 해결 방법이 있는지 확인하십시오. 그들은 생성되어 현장에 있기 때문에 다시 생성하는 것은 어려울 것입니다.

내가 사용하고있는 코드

은 다음과 같습니다 : 그것을 사용할 때 발생 sasKey이 실패합니다

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) 

. 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 

결과 :

나는 여덟 메시지를 추가 할 수 있습니다. 당신이 당신이 작동하지 않습니다 찾을 것 WCF 릴레이를 연결한다면

enter image description here

0

당신은, 큐를 연결했다.

Microsoft의 답변을 제품 팀으로부터 연락을 받았으며 버전 4.1.3에서 디자인 상 동작하는 것으로 알려졌습니다. 이번 변경은 SAS 토큰이 주기적으로 재 요청되어야한다는 이해를 바탕으로 PM 및 관리 팀의 결정이었습니다. 그러나 이것은 더 긴 만기 시간이 다시 지원 될 다음 릴리스에서 다시 변경 될 것입니다. 우리는 신속한 해결책을 제공하지 못함을 후회합니다.