繁体   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