I created a CrudAppService. When I invoke its dynamic api by using swagger, I get a generic 500
error with this description:
{
"result": null,
"targetUrl": null,
"success": false,
"error": {
"code": 0,
"message": "An internal error occurred during your request!",
"details": null,
"validationErrors": null
},
"unAuthorizedRequest": false,
"__abp": true
}
How can I get a more detailed exception to debug? Is there something I have to enable?
ABP + ASP.NET Core
Check error in Logs.txt.
From the documentation on Logging:
Configuration
All configuration is done for Log4Net when you create your application from ASP.NET Boilerplate templates.
...
It's defined in the log4net.config file of the application as shown below:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
<file value="Logs/Logs.txt" />
You can simply send the exception detail to the client by enabling one of the ABP configuration (SendAllExceptionsToClients) to true as
Configuration.Modules.AbpWebCommon().SendAllExceptionsToClients = true;
in ***.Web.Core Module.
public override void PreInitialize()
{
Configuration.Modules.AbpWebCommon().SendAllExceptionsToClients = true;
}
Then you get the exception detail on the client.
(Recommended only during development)
If you use CurrentUnitOfWork
, you can catch the exception also and using
UserFriendlyException
you can throw the desired exception. UserFriendlyException
is a specific type of exception so ABP directly shows exception message to the end user.
Example:
try
{
await _repository.InsertAsync(...);
await CurrentUnitOfWork.SaveChangesAsync();
}
catch(Exception ex)
{
throw new UserFriendlyException("user friendly exception message");
}