Console.WriteLine иногда выдает дескриптор недопустимого исключения

У меня есть функция Azure со следующей строкой кода:

Console.WriteLine("Name: " + list.Count());

Эта строка иногда вызывает это исключение:

Ручка недействительна.

в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e)
в Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor+d__26.MoveNext (Microsoft.Azure.WebJobs.Host, версия = 3.0.34.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35: C:\projects\azure-webjobs-sdk- rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs:352)
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter`1.GetResult (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor+d__18.MoveNext (Microsoft.Azure.WebJobs.Host, версия = 3.0.34.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35: C:\projects\azure-webjobs-sdk- rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs:108) Внутреннее исключение System.IO.IOException обрабатывается в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw: в System.ConsolePal+WindowsConsoleStream.Write (System.Console, версия = 4.1.2.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a) в System.IO.StreamWriter.Flush (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.IO.StreamWriter.WriteLine (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.IO.TextWriter+SyncTextWriter.WriteLine (System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e) в System.Console.WriteLine (System.Console, версия = 4.1.2.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a)

Должны ли мы игнорировать это или не использовать консольный класс в функции Azure?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
112
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это происходит, когда окно консоли было закрыто или если вывод консоли был перенаправлен в файл или другой поток.

В лазурных функциях не следует использовать Console.WriteLine. вместо этого вы должны использовать ILogger для записи журналов. вы можете вести такие журналы, как log.LogInformation("Name: " + list.Count());, это будет записывать выходные данные в журнал среды выполнения функций Azure. вы также можете просматривать журналы на портале Azure.

Обновлено: как предложил @Fildor в комментарии, вы можете использовать log.LogInformation("Name: {count}", list.Count());

Этот. Однако я бы порекомендовал семантическое ведение журнала.

Fildor 28.12.2022 09:45

@Fildor спасибо за ваш комментарий, но у меня очень ограниченные знания лазурного языка, пожалуйста, добавьте больше деталей в комментарий или добавьте в качестве своего ответа

Vivek Nuna 28.12.2022 09:48

Ничего большого. Просто предпочитаю log.LogInformation("Name: {count}", list.Count());

Fildor 28.12.2022 09:51

@ Филдор, спасибо, понял. я изменю свой ответ

Vivek Nuna 28.12.2022 09:52

Другие вопросы по теме