2017-08-20 4 views
0

Beim Hinzufügen einer Regel zu einem SubscriptionClient erhalte ich einen Syntaxfehler, wenn ich nicht alle Leerzeichen lösche. Keines der zahlreichen Beispiele, die ich gelesen habe, muss dies tun. Irgendwelche Ideen warum?Azure ServiceBus SqlFilter Ausdruck Syntaxfehler

// This works (whitespace stripped from expression) 
var rd= new RuleDescription("ZonesRule", new SqlFilter("Zone='All'")); 
subscriptionClient.AddRule(rd); 

// This does not work (normal whitespace in expression) 
var rd= new RuleDescription("ZonesRule", new SqlFilter("Zone = 'All'")); 
subscriptionClient.AddRule(rd); 

Microsoft.ServiceBus.Messaging.FilterException: ‚Es gab einen Fehler den SQL-Ausdruck Parsen. [Token-Zeile = 1, Spalte = 4, Token in Fehler = , Zusätzliche Details = Nicht erkanntes Zeichen. ''] TrackingID: 4087836f-321c-45d7-b217-cb7fae75ee67_G11_B27 ...‘

+1

Die Syntax hat überhaupt kein Problem. Aber wie die Fehlermeldung anzeigt, gibt es ein nicht erkanntes Leerzeichen, wird dieses Codebeispiel von irgendwo kopiert? Wenn dies der Fall ist, könnte der Leerraum codiert werden, was zu einem ungültigen Zeichen führt. Sie können versuchen, das Zeichen manuell einzugeben, um zu sehen, ob es hilft – forester123

Antwort

1

Wie forester123 erwähnt, dass Syntax kein Problem überhaupt hat. Ich teste es auch auf meiner Seite, es funktioniert richtig. Wir konnten SQLFilter syntax vom azurblauen offiziellen Dokument auch erhalten.

enter image description here

Wenn es möglich ist, bitte einen Versuch Gebrauch neueste 4.1.3 Version von WindowsAzure.ServiceBus haben.

+0

Yessir - Nach näherer Inspektion gab es ein Unicode-Leerzeichen (% A0 oder html  ) Zeichen dort anstelle von nur einem normalen Leerzeichen. Obwohl ich das schon überprüft hatte. Danke Leute! – pseabury

Verwandte Themen