簡體   English   中英

Console.WriteLine 有時會拋出 handle is invalid 異常

[英]Console.WriteLine sometimes throws the handle is invalid exception

我有一個 Azure function 有這行代碼:

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

此行有時會拋出此異常:

句柄無效。

在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(System.Private.CoreLib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e)
在 Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor+d__26.MoveNext (Microsoft.Azure.WebJobs.Host, Version=3.0.34.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: 88103788:65863 rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs:352)
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version= 4.0.0.0,文化=中性,PublicKeyToken=7cec85d7bea7798e)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Private.CoreLib,版本=4.0.0.0,文化=中性,PublicKeyToken=7cec85d7bea7798e)在System.ServiceRuntime..Compiler TaskAwaiter`1.GetResult (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) 在 Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor+d__18.MoveNext (Microsoft.Azure.WebJobs. , Version=3.0.34.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35: C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionExecutor.cs)Inner exception.cs:10 IO.我 OException 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 處理:在 System.ConsolePal+WindowsConsoleStream.Write(System.Console,Version=4.1.2.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a)在 System.IO.StreamWriter.Flush(System .Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.IO.StreamWriter.WriteLine (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System .IO.TextWriter+SyncTextWriter.WriteLine (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) at System.Console.WriteLine (System.Console, Version=4.1.2.0, Culture=neutral,公鑰令牌=b03f5f7f11d50a3a)

我們應該忽略這個還是不要在 Azure function 中使用控制台 class?

當控制台 window 已關閉,或者控制台 output 已被重定向到文件或其他 stream 時,會發生這種情況。

在 azure 函數中,您不應使用Console.WriteLine 相反,您應該使用ILogger來編寫日志。 您可以編寫日志,例如log.LogInformation("Name: " + list.Count()); ,這會將 output 寫入 Azure 函數運行時日志。 您還可以在 azure 門戶中查看日志。

編輯:正如@Fildor 在評論中建議的那樣,您可以使用log.LogInformation("Name: {count}", list.Count());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM