2017-08-20 77 views
0

將規則添加到SubscriptionClient時,如果我不刪除所有空白,則會出現語法錯誤。我讀過的大量例子都沒有這樣做。任何想法爲什麼?Azure ServiceBus SqlFilter表達式語法錯誤

// 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:「有解析SQL表達式錯誤 。 [令牌行= 1,列= 4,令牌出錯= ,其他詳細信息=無法識別的字符。 ''] TrackingId:4087836f-321C-45d7-B217-cb7fae75ee67_G11_B27 ......」

+1

語法完全沒有問題。但是,如錯誤消息所示,有一個無法識別的空白字符,這個代碼示例是從哪裏複製的?如果是這樣,空白可能會被編碼,導致無效的字符。您可以嘗試手動輸入字符以查看是否有幫助。 – forester123

回答

1

由於forester123提到的語法有一點問題都沒有。我也在我身邊測試它,它工作正常。我們也可以從azure官方文檔獲得SQLFilter syntax

enter image description here

如果可能的話,請試試使用最新版本4.1.3的WindowsAzure.ServiceBus

+0

Yessir - 經過仔細檢查後,出現了Unicode非空白字符(%A0或html  )字符,而不是普通空格。雖然我已經檢查過了。多謝你們! – pseabury