2013-05-02 70 views
1

我正在使用Protobuf-net(https://code.google.com/p/protobuf-net/)來序列化我的類,然後嘗試通過amazon SQS傳輸此消息。通過AWS SQS傳輸ProtoBuf-net消息時無效的二進制字符

當我這樣做,我得到這個錯誤:

Amazon.SQS.AmazonSQSException: Invalid binary character '#xC' was found in the message body, the set of allowed characters is #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]. 

這是不言自明。

有沒有人得到一個很好的解決方案,如何得到這個工作?

回答

3

郵件正文中只允許使用這些字符:請參閱SendMessage API docs

要發送任何二進制內容,您必須對其進行編碼,例如,使用Base64。該消息然後更大,但只包含ASCII字符,這比亞馬遜要求更嚴格。

我們正在使用這種方法,例如,在softwaremill-common庫中發送一個序列化的Java對象。