在調試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等操作時會出錯。