2.10、如何进行异常排查
日常开发或者环境部署中,我们开发项目经常会碰到很多的异常,但是无法找到原因,只能靠猜。现在分享几种我们自己的处理方式。
首先我们将iis抛出日志的开关打开。
1、Asp.net core 代码找错方式一。
在发布到IIS的webApi项目中,运行时报出以上错误,
1、打开发布目录文件夹,找到web.config文件
2、打开web.config找到stdoutLogEnabled="false",把该值改为true,即->stdoutLogEnabled="true"
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\CoreCms.Net.Web.Admin.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: 95487ef2-3942-4f9b-8ece-acd7a4b304d9-->
3、Web.Config增加环境变量为开发模式(用的多)
如源代码为
<aspNetCore processPath="dotnet" arguments=".\CoreCms.Net.Web.WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
修改为
<aspNetCore processPath="dotnet" arguments=".\CoreCms.Net.Web.WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
注意看,是在 aspNetCore
节点里面增加了 environmentVariables
节点。那么IIs下500就会抛出详细异常了。而不只是提示友好说明。
2、Asp.net core 代码找错方式二。
通过服务器的事件查看器获取。
3、通过浏览器F12获取
建议使用edge或者chorme浏览器,在打开网页的情况下,按F12,或者点击右上角选项里面的【开发人员工具】。
对当前页重新进行业务操作,那么右侧的开发者工具里面,就会有响应的请求或者数据提示,大家可以通过查看【控制台】或者【网络】里面的请求查阅信息。