How to get more detailed exception in ABP?

前端 未结 3 1702
北恋
北恋 2021-01-02 05:18

I created a CrudAppService. When I invoke its dynamic API by using swagger, I get a generic 500 error with this description:



        
相关标签:
3条回答
  • 2021-01-02 05:39

    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" />
    
    0 讨论(0)
  • 2021-01-02 05:44

    You can simply send the exception details to the client by enabling one of ABP's configurations (SendAllExceptionsToClients) in ***.Web.Core Module, like this:

    public override void PreInitialize()
    {   
        Configuration.Modules.AbpWebCommon().SendAllExceptionsToClients = true;
    }
    

    Then you get the exception details on the client. Recommended only during development.

    0 讨论(0)
  • 2021-01-02 05:45

    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");
    }
    
    0 讨论(0)
提交回复
热议问题