2017-08-20 3 views
0

Lorsque j'ajoute une règle à un SubscriptionClient, j'obtiens une erreur de syntaxe si je ne supprime pas tous les espaces. Aucun des nombreux exemples que j'ai lus ne doit le faire. Des idées pourquoi?Azure ServiceBus SqlFilter Erreur de syntaxe d'expression

// 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: « Il y avait une erreur analyse l'expression SQL. [Ligne de jeton = 1, colonne = 4, Jeton en erreur = , Détails supplémentaires = Caractère non reconnu. ''] TrackingID: 4087836f-321c-45d7-B217-cb7fae75ee67_G11_B27 ... »

+1

La syntaxe n'a aucun problème. Mais comme le message d'erreur l'indique, il y a un caractère d'espace non reconnu, cet exemple de code est-il copié de quelque part? Si c'est le cas, les espaces peuvent être codés ce qui conduit à un caractère invalide. Vous pouvez essayer de taper manuellement le caractère pour voir si cela aide – forester123

Répondre

1

Comme forester123 mentionné que la syntaxe n'a pas de problème du tout. Je l'ai également testé de mon côté, il fonctionne correctement. Nous pourrions également obtenir SQLFilter syntax du document officiel d'azur.

enter image description here

S'il est possible, s'il vous plaît ont une utilisation try dernière version de 4.1.3 WindowsAzure.ServiceBus.

+0

Yessir - Après une inspection plus approfondie, il y avait un caractère Unicode insécable (% A0, ou html  ) au lieu d'un simple espace normal. Bien que j'avais déjà vérifié cela. Merci les gars! – pseabury