abp调试时遇到an internal error occurred during your request怎么查看详细日志
在调试abp程序时,前端经常会抛出An internal error occurred during your request,这个时候往往不明觉历,在后台打断点调试进去,看到的也是这个错误,怎么查看详细的错误日志呢?
方法一
通过查看**..Web.Mvc项目,找到log4net.config文件里面,找到 <file value="App_Data/Logs/Logs.txt" />这个配置,通过这个配置找到对应的Logs.txt的异常日志文件,找到异常原因并解决。
方法二
通过在 ***.Web.Core模块找到AbpZeroTemplateWebCoreModule.cs文件,找到 public override void PreInitialize()这个方法,然后在尾部添加 Configuration.Modules.AbpWebCommon().SendAllExceptionsToClients = true;
这样,客户端就可以查看到详细的异常日志信息,但是记得在发布到正式环境 的时候关闭噢。
方法三
在APPService层,直接拦截异常,如下:
try
{
await _repository.InsertAsync(...);
await CurrentUnitOfWork.SaveChangesAsync();
}
catch(Exception ex)
{
throw new UserFriendlyException("user friendly exception message");
}
这样手工拦截
附记
若你的实体继承了IMustHaveTenant接口,在调用Repository.InsertAsync这样的方法保存时必须给TenantId赋值,如果你没有取到TenantId,在多租户的情况下默认最好设置为1(或者查看数据库里默认tenantid表的ID值 ).否则在做create等操作时会出错。
网友评论