Невозможно преобразовать входной параметр myBlob в тип System.IO.Stream из типа System.ReadOnlyMemory. ⇐ C#
-
Гость
Невозможно преобразовать входной параметр myBlob в тип System.IO.Stream из типа System.ReadOnlyMemory.
У меня возникла проблема с net7.0, изолированным от dotnet: в документации сказано, что я могу работать с потоком, но мой код дает сбой.
Я работаю со следующими пакетами:
Моя функция такова:
[Функция(nameof(CMImageResizer))] общедоступный асинхронный запуск задачи( [BlobTrigger("rawimages/{name}", Connection = "StorageAccountConnectionString")] Поток myBlob, [BlobInput("resizedimages/{name}", Connection = "StorageAccountConnectionString")] Изображение измененного размера потока, имя строки) { пытаться { _log.LogInformation("Обработка изображения: размер {name}: {myBlobLength} байт", name, myBlob.Length); И код ошибки:
Выполнение «Functions.CMImageResizer» (Причина = «Обнаружен новый большой двоичный объект (LogsAndContainerScan): rawimages/taladro1.jpg», Id=00c22256-e65c-478c-82c3-eaca92c310b7) [2023-12-24T05:35:39.632Z] Сведения о триггере: MessageId: 2f450295-dae1-42f5-ac2e-089d5b0d2a55, DequeueCount: 1, InsertedOn: 2023-12-24T05:35:38.000+00:00, BlobCreated : 2023 г. -12-24T04:42:41.000+00:00, BlobLastModified: 2023-12-24T05:35:28.000+00:00 [2023-12-24T05:35:40.601Z] Функция «CMImageResizer», Идентификатор вызова «00c22256-e65c-478c-82c3-eaca92c310b7»: при вызове было выдано исключение. [2023-12-24T05:35:40.604Z] Результат: функция «CMImageResizer», идентификатор вызова «00c22256-e65c-478c-82c3-eaca92c310b7»: при вызове было создано исключение. [2023-12-24T05:35:40.604Z] Исключение: Microsoft.Azure.Functions.Worker.FunctionInputConverterException: Ошибка преобразования 1 входного параметра для функции «CMImageResizer»: невозможно преобразовать входной параметр «myBlob» в тип «System.IO.Stream» из типа «System.ReadOnlyMemory1[[System.Byte, System.Private.CoreLib, Version=7.0.0.0» , Culture=нейтрально, PublicKeyToken=7cec85d7bea7798e]]'. Ошибка: System.Text.Json.JsonException: «R» — недопустимое начало значения. Путь: $ | НомерЛинии: 0 | БайтеПозиционИнЛайн: 0. [2023-12-24T05:35:40.604Z] ---> System.Text.Json.JsonReaderException: 'R' — недопустимое начало значения. НомерЛинии: 0 | БайтеПозиционИнЛайн: 0. [2023-12-24T05:35:40.604Z] в System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ресурс ExceptionResource, Byte nextByte, ReadOnlySpan1 байт) [2023-12-24T05:35:40.604Z] в System. Text.Json.Utf8JsonReader.ConsumeValue(байтовый маркер) [2023-12-24T05:35:40.604Z] в System.Text.Json.Utf8JsonReader.ReadFirstToken(байтовый маркер) [2023-12-24T05:35:40.604Z] в System.Text.Json.Utf8JsonReader.ReadSingleSegment() [2023-12-24T05:35:40.604Z] в System.Text.Json.Utf8JsonReader.Read() [2023-12-24T05:35:40.604Z] в System. Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& Reader, параметры JsonSerializerOptions, ReadStack& состояние) Что не так, ведь в документации сказано, что теперь воркер позволяет работать с потоком.
У меня возникла проблема с net7.0, изолированным от dotnet: в документации сказано, что я могу работать с потоком, но мой код дает сбой.
Я работаю со следующими пакетами:
Моя функция такова:
[Функция(nameof(CMImageResizer))] общедоступный асинхронный запуск задачи( [BlobTrigger("rawimages/{name}", Connection = "StorageAccountConnectionString")] Поток myBlob, [BlobInput("resizedimages/{name}", Connection = "StorageAccountConnectionString")] Изображение измененного размера потока, имя строки) { пытаться { _log.LogInformation("Обработка изображения: размер {name}: {myBlobLength} байт", name, myBlob.Length); И код ошибки:
Выполнение «Functions.CMImageResizer» (Причина = «Обнаружен новый большой двоичный объект (LogsAndContainerScan): rawimages/taladro1.jpg», Id=00c22256-e65c-478c-82c3-eaca92c310b7) [2023-12-24T05:35:39.632Z] Сведения о триггере: MessageId: 2f450295-dae1-42f5-ac2e-089d5b0d2a55, DequeueCount: 1, InsertedOn: 2023-12-24T05:35:38.000+00:00, BlobCreated : 2023 г. -12-24T04:42:41.000+00:00, BlobLastModified: 2023-12-24T05:35:28.000+00:00 [2023-12-24T05:35:40.601Z] Функция «CMImageResizer», Идентификатор вызова «00c22256-e65c-478c-82c3-eaca92c310b7»: при вызове было выдано исключение. [2023-12-24T05:35:40.604Z] Результат: функция «CMImageResizer», идентификатор вызова «00c22256-e65c-478c-82c3-eaca92c310b7»: при вызове было создано исключение. [2023-12-24T05:35:40.604Z] Исключение: Microsoft.Azure.Functions.Worker.FunctionInputConverterException: Ошибка преобразования 1 входного параметра для функции «CMImageResizer»: невозможно преобразовать входной параметр «myBlob» в тип «System.IO.Stream» из типа «System.ReadOnlyMemory1[[System.Byte, System.Private.CoreLib, Version=7.0.0.0» , Culture=нейтрально, PublicKeyToken=7cec85d7bea7798e]]'. Ошибка: System.Text.Json.JsonException: «R» — недопустимое начало значения. Путь: $ | НомерЛинии: 0 | БайтеПозиционИнЛайн: 0. [2023-12-24T05:35:40.604Z] ---> System.Text.Json.JsonReaderException: 'R' — недопустимое начало значения. НомерЛинии: 0 | БайтеПозиционИнЛайн: 0. [2023-12-24T05:35:40.604Z] в System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ресурс ExceptionResource, Byte nextByte, ReadOnlySpan1 байт) [2023-12-24T05:35:40.604Z] в System. Text.Json.Utf8JsonReader.ConsumeValue(байтовый маркер) [2023-12-24T05:35:40.604Z] в System.Text.Json.Utf8JsonReader.ReadFirstToken(байтовый маркер) [2023-12-24T05:35:40.604Z] в System.Text.Json.Utf8JsonReader.ReadSingleSegment() [2023-12-24T05:35:40.604Z] в System.Text.Json.Utf8JsonReader.Read() [2023-12-24T05:35:40.604Z] в System. Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& Reader, параметры JsonSerializerOptions, ReadStack& состояние) Что не так, ведь в документации сказано, что теперь воркер позволяет работать с потоком.
Мобильная версия