我目前正在研究一个从服务总线队列中读取消息的天蓝色函数。我处于测试阶段,我的服务总线队列每分钟收到大约 50 条消息。(在生产环境中,每分钟会有数千个数据点进入)。当我运行我的函数时,我收到以下错误(请参阅代码中的错误注释)
[FunctionName("ReadServiceBusMessage")]
public static void ProcessMessagesAsync([ServiceBusTrigger("modbusdata", Connection = "test_RootManageSharedAccessKey_SERVICEBUS")]Message message, ILogger log)
{
try
{
log.LogInformation("Reading the message from queue");
log.LogInformation("======================================================");
string itemRaw;
var data = new MemoryStream(message.Body);
using (var istr = new InflaterInputStream(data))
using (var rdr = new StreamReader(istr))
{
itemRaw = rdr.ReadToEnd();//ERROR:ICSharpCode.SharpZipLib.SharpZipBaseException: 'Header checksum illegal'
}
log.LogInformation("Message encoding is completed.");
log.LogInformation("========================================");
老实说,我找不到太多有用的信息来说明这个错误可能发生的情况。我最接近找到解决方案的是,也许我应该缩小消息而不是膨胀,或者在我的代码中膨胀它不起作用,因为我在模拟环境中没有使用足够的数据。提前感谢您提供的任何指导。