我正在将字节数组发送到Azure存储队列-由于队列大小的限制,它被压缩为JSON,编码为base64。 gzip压缩然后编码为base64,它已经远远低于限制。使用简单的示例C#程序(而不是触发器),检索消息可以正常工作:
unknown
但是,当重写与功能应用触发器相同的代码时:
function sat_clock() {
$format = get_option('date_format') . ' ' . get_option('time_format');
$hour = the_field('weekday_open', 'options');
$times = array(
'mon' => '9:00 AM - 9:00 PM',
'tue' => '9:00 AM - 9:00 PM',
'wed' => '9:00 AM - 9:00 PM',
'thu' => '9:00 AM - 9:00 PM',
'fri' => '9:00 AM - 9:00 PM',
'sat' => '11:00 AM - 6:00 PM',
'sun' => 'closed'
);
print date_i18n($format, current_time('timestamp'));
print $hour;
}
add_action( 'woocommerce_archive_description', 'sat_clock' );
在执行我的任何代码之前,收到消息时会引发错误:
QueueMessage[] retrievedMessage = queueClient.ReceiveMessages();
byte[] data = Convert.FromBase64String(retrievedMessage[0].MessageText);
...decompress etc. no errors thrown, works fine...
但是解压效果很好,原始消息是完整无误的。
在这种情况下,我正在使用Visual Studio 2019和云(而不是本地模拟)存储从本地计算机运行触发器。还已将该功能部署到Azure。
任何人都有见识吗?我不想部署该应用程序,因为每条消息都会引发错误。功能应用程序使用所有最新的库版本。函数应用自动从base64执行转换有点奇怪,但这似乎是默认行为。谢谢。