Thanks your helping, maliming
[maliming] said: hi
The UserFriendlyException not shown on the razor page client
What is your razor page code?
Thanks
Not any specified code, just a form submit, send a phonenumber and a verification code to API side.
Resolved by added below code in ConfigureServices:
`
Configure
// This Cron expression only works if Hangfire or Quartz is used for background workers.
// The Hangfire Cron expression is different from the Quartz Cron expression, Please refer to the following links:
// https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/crontriggers.html#cron-expressions
// https://docs.hangfire.io/en/latest/background-methods/performing-recurrent-tasks.html
options.CronExpression = "0 2 * * * ?"; // Quartz Cron expression is "0 23 * * * ?"
});
` The default cron expression is for Hangfire, needs to add the correct format for Quartz if you are using Quartz as background worker.
This should add int the doc as a configuration section.
The generate proxy issue resolved, it caused by a typo which the interface of the integration service not follow the conventional.
Thanks for the help from Maliming, the auth server UI login is a cookie authentication, not the token scenario, added below code auth server module works fine
`
context.Services.ConfigureApplicationCookie(options =>
{
var previousOnSignedIn = options.Events.OnSignedIn;
options.Events.OnSignedIn = async cookieSignedInContext =>
{
await previousOnSignedIn(cookieSignedInContext);
};
var previousOnSigningOut = options.Events.OnSigningOut;
options.Events.OnSigningOut = async cookieSigningOutContext =>
{
await previousOnSigningOut(cookieSigningOutContext);
};
}); `
The simple inline handle is not triggered, the event itself may not be firing due to pipeline misconfiguration, could you give some suggestions which pipeline misconfiguration?
Thanks a lot for maliming's help, a redundant module depends caused an odd bug
That is right, my local environment debug already configured it as you suggested
here is the API app program file code:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
.Enrich.FromLogContext()
.WriteTo.Async(c => c.File("Logs/logs.txt", rollingInterval: RollingInterval.Day))
.WriteTo.Async(c => c.Console())
.CreateBootstrapLogger();
try
{
Log.Information($"Starting {GetCurrentAssemblyName()}");
AbpStudioEnvironmentVariableLoader.Load();
var builder = WebApplication.CreateBuilder(args);
builder.Host
.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog((context, services, loggerConfiguration) =>
{
var applicationName = services.GetRequiredService<IApplicationInfoAccessor>().ApplicationName;
loggerConfiguration
#if DEBUG
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
.Enrich.FromLogContext()
#else
.MinimumLevel.Information()
#endif
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
.Enrich.FromLogContext()
.Enrich.WithProperty("Application", applicationName)
.If(context.Configuration.GetValue<bool>("ElasticSearch:IsLoggingEnabled"), c =>
c.WriteTo.Elasticsearch(
new ElasticsearchSinkOptions(new Uri(context.Configuration["ElasticSearch:Url"]!))
{
AutoRegisterTemplate = true,
AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
IndexFormat = "PointLink-log-{0:yyyy.MM}"
})
)
.WriteTo.Async(c => c.File("Logs/logs.txt", rollingInterval: RollingInterval.Day))
.WriteTo.Async(c => c.Console())
.WriteTo.Async(c => c.AbpStudio(services));
});
await builder.AddApplicationAsync<PointLinkAdministrationServiceModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();
Log.Information($"Stopped {GetCurrentAssemblyName()}");
return 0;
}
catch (HostAbortedException)
{
/* Ignoring this exception because: https://github.com/dotnet/efcore/issues/29809#issuecomment-1345132260 */
return 2;
}
catch (Exception ex)
{
Console.WriteLine($"{GetCurrentAssemblyName()} terminated unexpectedly!");
Console.WriteLine(ex.ToString());
Console.WriteLine(ex.StackTrace ?? "");
Log.Fatal(ex, $"{GetCurrentAssemblyName()} terminated unexpectedly!");
Log.Fatal(ex.Message);
Log.Fatal(ex.StackTrace ?? "");
return 1;
}
finally
{
await Log.CloseAndFlushAsync();
}
}
below are the logs after add debug info follow up your suggestion, it seems no more info logged
2025-07-22 20:19:27.918 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44357/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 - null null 2025-07-22 20:19:27.924 +08:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc)' 2025-07-22 20:19:27.924 +08:00 [INF] Route matched with {area = "abp", action = "Get", controller = "AbpApplicationConfiguration", page = ""}. Executing controller action with signature System.Threading.Tasks.Task1[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto] GetAsync(Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions) on controller Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController (Volo.Abp.AspNetCore.Mvc).
2025-07-22 20:19:27.928 +08:00 [WRN] The cookie 'XSRF-TOKEN' has set 'SameSite=None' and must also set 'Secure'.
2025-07-22 20:19:27.928 +08:00 [DBG] Executing AbpApplicationConfigurationAppService.GetAsync()...
2025-07-22 20:19:28.050 +08:00 [DBG] Executed AbpApplicationConfigurationAppService.GetAsync().
2025-07-22 20:19:28.050 +08:00 [INF] Executing ObjectResult, writing value of type 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto'.
2025-07-22 20:19:28.051 +08:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc) in 126.2675ms
2025-07-22 20:19:28.051 +08:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc)'
2025-07-22 20:19:28.051 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44357/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0 - 200 null application/json; charset=utf-8 132.6133ms
2025-07-22 20:19:28.052 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44357/api/abp/application-localization?CultureName=zh-Hans&OnlyDynamics=True&api-version=1.0 - null null
2025-07-22 20:19:28.059 +08:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController.GetAsync (Volo.Abp.AspNetCore.Mvc)'
2025-07-22 20:19:28.059 +08:00 [INF] Route matched with {area = "abp", action = "Get", controller = "AbpApplicationLocalization", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto] GetAsync(Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto) on controller Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController (Volo.Abp.AspNetCore.Mvc).
2025-07-22 20:19:28.365 +08:00 [INF] Executing ObjectResult, writing value of type 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto'.
2025-07-22 20:19:28.365 +08:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController.GetAsync (Volo.Abp.AspNetCore.Mvc) in 305.6032ms
2025-07-22 20:19:28.365 +08:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController.GetAsync (Volo.Abp.AspNetCore.Mvc)'
2025-07-22 20:19:28.365 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44357/api/abp/application-localization?CultureName=zh-Hans&OnlyDynamics=True&api-version=1.0 - 200 null application/json; charset=utf-8 312.3666ms
`