我使用App Service
开发了一个在Azure
上托管的ASP.NET Core 2.2
后端。
有时我会收到500 status
,但是我无法找出在哪里生成500。
我正在使用application Insights
,并且在失败的请求上看到,有时我的App服务有一些调用返回500。
如果我用邮递员用相同的值重现相同的呼叫,则不会得到500。这也有一些最终客户应用向此后端发出请求。我相信这正在发生在他们身上,但是如果我用相同的值执行相同的请求,为什么我不能重现相同的结果。
我知道500表示“内部服务器错误”,它与应用程序代码有关,但我甚至已将我的App Service配置为使用全局错误处理,但我从来没有得到500当我执行在Application Insights上看到的相同请求时。
我在 StartUpp 类的 Configure 上设置了全局错误处理(仅向您显示我也启用了该错误)
app.UseExceptionHandler(config => ExceptionHandlingSettings.ConfigureGlobalExcpetionHandling(config));
我想知道在哪里或如何获得更多信息,以便找出产生错误/异常的代码,因为我猜我的代码中存在一些错误,该错误会引发未处理的异常。
答案 0 :(得分:0)
您可以执行以下几个步骤来了解根本原因:
1-将stdoutLogEnabled =“ false”更改为true,然后检查stdoutLogFile =“。\ logs \ stdout”中的日志。那里的错误可能会告诉您一些情况。
ASP.NET核心模块标准输出日志通常记录在应用程序事件日志中找不到的有用错误消息。要启用和查看标准输出日志:
检查完成后,请确保删除日志记录。
2-使用中间件来处理错误的请求,例如app.UseDeveloperExceptionPage();
3-您可以在应用程序中添加应用程序Insight,并尝试将“信息”日志记录到代码中以了解导致故障的部分。
有关其他参考,请检查以下文档:
https://docs.microsoft.com/en-us/aspnet/core/test/troubleshoot-azure-iis?view=aspnetcore-3.0
https://docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-exceptions
希望有帮助。