IronPython Azure发送服务总线消息 - 断言错误

时间:2014-10-07 21:11:05

标签: azure ironpython

我一直在尝试使用不同的字符串组合来使其工作无济于事。希望有人可以提供帮助。我使用Azure SDK发送服务总线消息。

GUID = '40100b19-1335-468d-bf18-fca6b15c8f0c'
Current_Lineup = '{"Flex": 11247, "DST": 530, "RB2": 9680, "RB1": 9448, "QB": 10699, "WR2": 9964, "WR3": 9427, "WR1": 11676, "TE": 11521}'
sbs = ServiceBusService('blahblah' , 'blahblahblah', 'owner')
msgbody = 'msg-body'
utf8msg = msgbody.encode('utf8')
bytemsg = bytes(utf8msg)
msg = Message(bytemsg, custom_properties={"MessageId":GUID,"Whitelist":Current_Lineup,"Type":"roster"})
## msg = Message(b'msg-body')
## msg = Message(b'msg-body', custom_properties={"MessageId":GUID,"Whitelist":Current_Lineup,"Type":"roster"})
sbs.send_topic_message('statustopic',msg)

似乎Azure SDK不喜欢我为邮件正文发送的内容。使用CPython就像一个冠军。使用IronPython会死于AssertionError。

任何帮助都将非常感谢!!!

1 个答案:

答案 0 :(得分:0)

看起来我得到了它,但有点像kludge。仍然希望有一个更好的解决方案,所以你所有的IronPython家伙,请插入。

我将消息创建调用更改为此...

msg = Message(None, custom_properties={"MessageId":GUID,"Whitelist":Current_Lineup,"Type":"roster"})

我不需要消息正文来携带任何数据。在属性中发送数据要容易得多。

我唯一需要改变的是在sendclquest_body的httpclient.py中注释这一行......

assert isinstance(request_body, bytes)

我宁愿不破解httpclient.py,但这是我弄清楚如何解决这个错误的唯一方法。