Hello ABP Team,
I'm encountering a consistent runtime error in both the ApiHost and Web projects of my ABP-based solution (built using ABP Studio with the latest templates). The error occurs in the HealthChecks UI background service and prevents health report collection.
Exception Details:
System.IO.FileNotFoundException: Could not load file or assembly 'IdentityModel, Version=5.2.0.0, Culture=neutral, PublicKeyToken=e7877f4675df049f'. The system cannot find the file specified. at HealthChecks.UI.Core.HostedService.HealthCheckReportCollector.GetHealthReportAsync(HealthCheckConfiguration configuration) ... This error repeats every 10 seconds in the logs:
[ERR] HealthCheck collector HostedService threw an error: Could not load file or assembly 'IdentityModel, Version=5.2.0.0, ... Environment:
ABP Framework version: v10(as shown in footer of documentation) .NET version: .NET 10.0.0 Solution type: Microservice (with Gateway, Web, and ApiHost services) All ABP packages were updated via ABP Studio → Upgrade ABP Packages Steps to Reproduce:
Create a new microservice solution using ABP Studio (v10+). Run the *.Web and *.ApiHost projects. Observe the error in application logs shortly after startup. Observations:
The IdentityModel package (v5.2.0) appears to be a transitive dependency of AspNetCore.HealthChecks.UIClient or related health check components. However, it is not explicitly installed in the project, and no binding redirect or assembly resolution is configured. Manually adding <PackageReference Include="IdentityModel" Version="5.2.0" /> to the affected projects resolves the issue temporarily—but this should ideally be handled by the ABP template or dependency graph. Request: Please investigate whether the ABP microservice template (or HealthChecks integration) is missing an explicit dependency on IdentityModel, or if there’s a version mismatch between transitive dependencies in the current preview release.
Thank you for your support!
Best regards,
I am using the latest version of ABP Studio 1.4.1 and switched the ABP Suite CLI to version 10.0.0-rc.1. I created a new solution using Angular as the UI framework. My goal is to use the preview version to prepare the solution in advance, so that when ABP officially releases version 10.0 in December, I can more easily upgrade the backend framework (by simply updating the package versions) and the Angular frontend code. However, when I tried to create a solution using version 10.0.0-rc.1, the generated backend code was still based on version 9.3.6, while the frontend correctly used Angular v20. I then switched the CLI in ABP Studio to the preview version, and the solution was updated to 10.0.0-rc.1, but it failed to compile. Should I wait for the official release of ABP 10.0, or is it worth trying to use the 10.0 RC version? If I proceed with the RC version, what is the recommended way to create a solution at this stage?


{ "Id": "3ddda7fa-e708-4dc5-888a-193a515549bb", "Name": "BaseCountryInfo", "OriginalName": "BaseCountryInfo", "NamePlural": "BaseCountryInfos", "DatabaseTableName": "BaseCountryInfos", "Namespace": "BaseCountryInfos", "Type": 1, "MasterEntityName": null, "MasterEntity": null, "BaseClass": "Entity", "PageTitle": "BaseCountryInfos", "MenuIcon": "file-alt", "PrimaryKeyType": "Guid", "PreserveCustomCode": false, "IsMultiTenant": true, "CheckConcurrency": false, "BulkDeleteEnabled": false, "ShouldCreateUserInterface": false, "ShouldCreateBackend": true, "ShouldExportExcel": false, "ShouldAddMigration": true, "ShouldUpdateDatabase": true, "CreateTests": false, "Properties": [ { "Id": "ff2290d3-7d72-4f7a-beb0-ea4996541ab7", "Name": "CountryName", "Type": "string", "EnumType": "", "EnumNamespace": "", "EnumAngularImport": "shared/enums", "EnumFilePath": null, "DefaultValue": null, "IsNullable": false, "IsRequired": true, "IsFilterable": true, "AllowEmptyStrings": false, "IsTextArea": false, "MinLength": null, "MaxLength": null, "SortOrder": 0, "SortType": 0, "Regex": "", "EmailValidation": false, "ShowOnList": false, "ShowOnCreateModal": true, "ShowOnEditModal": false, "ReadonlyOnEditModal": false, "EnumValues": null, "IsSelected": true, "MaxFileSize": null, "OrdinalIndex": 0 }, { "Id": "d67d54f0-1856-4c7f-b58c-7303be6fd2b7", "Name": "CountryCode", "Type": "string", "EnumType": "", "EnumNamespace": "", "EnumAngularImport": "shared/enums", "EnumFilePath": null, "DefaultValue": null, "IsNullable": false, "IsRequired": true, "IsFilterable": true, "AllowEmptyStrings": false, "IsTextArea": false, "MinLength": null, "MaxLength": null, "SortOrder": 0, "SortType": 0, "Regex": "", "EmailValidation": false, "ShowOnList": false, "ShowOnCreateModal": true, "ShowOnEditModal": false, "ReadonlyOnEditModal": false, "EnumValues": null, "IsSelected": true, "MaxFileSize": null, "OrdinalIndex": 0 } ], "NavigationProperties": [], "NavigationConnections": [], "ChildEntities": [], "PhysicalFileName": "BaseCountryInfo.json" }
The certificate for my IIS expired today. After updating the certificate, I received the following message:
"has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource."
My Server Is Windows Server 2022 ,My site hasn't been updated for over half a year, and no changes have been made to the server.

by the pic my api is admin.XXX.CN my web site is https://www.xxx.cn when i open web site , Automatic redirection https://www.xxx.cn/error
this is api logs
2025-01-13 14:22:03.673 +08:00 [INF] Request starting HTTP/1.1 GET http://admin.xxx.cn/health-status - null null
2025-01-13 14:22:04.094 +08:00 [INF] CORS policy execution successful.
2025-01-13 14:22:04.102 +08:00 [INF] Request finished HTTP/2 OPTIONS https://admin.xxx.cn/.well-known/openid-configuration - 204 null null 1178.3155ms
2025-01-13 14:22:04.124 +08:00 [ERR] An unhandled exception has occurred while executing the request.
System.InvalidOperationException: When using X.509 encryption credentials, at least one of the registered certificates must be valid.
To use key rollover, register both the new certificate and the old one in the credentials collection.
at OpenIddict.Server.OpenIddictServerConfiguration.PostConfigure(String name, OpenIddictServerOptions options)
at Microsoft.Extensions.Options.OptionsFactory1.Create(String name) at System.Lazy1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor) at System.Lazy1.CreateValue()
at Microsoft.Extensions.Options.OptionsCache1.GetOrAdd[TArg](String name, Func3 createOptions, TArg factoryArgument)
at Microsoft.Extensions.Options.OptionsMonitor1.Get(String name) at OpenIddict.Validation.ServerIntegration.OpenIddictValidationServerIntegrationConfiguration.Configure(OpenIddictValidationOptions options) at Microsoft.Extensions.Options.OptionsFactory1.Create(String name)
at System.Lazy1.ViaFactory(LazyThreadSafetyMode mode) at System.Lazy1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy1.CreateValue() at Microsoft.Extensions.Options.OptionsCache1.GetOrAdd[TArg](String name, Func3 createOptions, TArg factoryArgument) at Microsoft.Extensions.Options.OptionsMonitor1.Get(String name)
at OpenIddict.Validation.OpenIddictValidationFactory.CreateTransactionAsync()
at OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandler.HandleRequestAsync()
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.<Invoke>g__AwaitMatcher|10_0(EndpointRoutingMiddleware middleware, HttpContext httpContext, Task`1 matcherTask)
at Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 找到了多个具有相同相对路径的发布输出文件: D:\test\aspnet-core\modules\Business.A\src\Business.A.Web\Pages_ViewImports.cshtml, D:\test\aspnet-core\modules\Business.B\src\Business.B.Web\Pages_ViewImports.cshtml, D:\test\aspnet-core\modules\Business.C\src\Business.C.Web\Pages_ViewImports.cshtml, D:\test\aspnet-core\modules\Business.D\src\Business.D.Web\Pages_ViewImports.cshtml, D:\test\aspnet-core\modules\Business.E\src\Business.E.Web\Pages_ViewImports.cshtml。
Business A B C D E five module has same file _ViewImports.cshtml , I Can't Publish Web Project。
When I ReName _ViewImports.cshtml , Run Web Application has Error Log ,
2024-09-16 18:11:31.014 +08:00 [ERR] An unhandled exception has occurred while executing the request.
Volo.Abp.Http.Client.AbpRemoteCallException: An error occurred during the ABP remote HTTP request. (The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.) See the inner exception for details.
---> System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.
---> System.TimeoutException: The operation was canceled.
---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
---> System.IO.IOException: Unable to read data from the transport connection: 由于线程退出或应用程序请求,已中止 I/O 操作。.
---> System.Net.Sockets.SocketException (995): 由于线程退出或应用程序请求,已中止 I/O 操作。
--- End of inner exception stack trace ---
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)
at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken, Int32 estimatedSize)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder1.StateMachineBox1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](Memory1 buffer, CancellationToken cancellationToken) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder1.StateMachineBox1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at System.Net.Http.HttpConnection.<EnsureReadAheadTaskHasStarted>g__ReadAheadWithZeroByteReadAsync|40_0() at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.<SendCoreAsync>g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken) at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.<SendCoreAsync>g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) --- End of inner exception stack trace --- --- End of inner exception stack trace --- at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase1.RequestAsync(ClientProxyRequestContext requestContext)
--- End of inner exception stack trace ---
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase1.RequestAsync(ClientProxyRequestContext requestContext) at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase1.RequestAsync[T](ClientProxyRequestContext requestContext)
at Volo.Abp.Http.Client.ClientProxying.ClientProxyBase1.RequestAsync[T](String methodName, ClientProxyRequestTypeValue arguments) at Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClientProxies.AbpApplicationConfigurationClientProxy.GetAsync(ApplicationConfigurationRequestOptions options) at Volo.Abp.AspNetCore.Mvc.Client.MvcCachedApplicationConfigurationClient.GetRemoteConfigurationAsync() at Volo.Abp.AspNetCore.Mvc.Client.MvcCachedApplicationConfigurationClient.<GetAsync>b__19_0() at Volo.Abp.Caching.DistributedCache2.GetOrAddAsync(TCacheKey key, Func1 factory, Func1 optionsFactory, Nullable1 hideErrors, Boolean considerUow, CancellationToken token) at Volo.Abp.AspNetCore.Mvc.Client.MvcCachedApplicationConfigurationClient.GetAsync() at Nito.AsyncEx.Synchronous.TaskExtensions.WaitAndUnwrapException[TResult](Task1 task)
at Nito.AsyncEx.AsyncContext.<>c__DisplayClass16_01.<Run>b__0(Task1 t)
at System.Threading.Tasks.ContinuationResultTaskFromResultTask2.InnerInvoke() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) --- End of stack trace from previous location --- at Nito.AsyncEx.Synchronous.TaskExtensions.WaitAndUnwrapException[TResult](Task1 task)
at Nito.AsyncEx.AsyncContext.Run[TResult](Func1 action) at Volo.Abp.Threading.AsyncHelper.RunSync[TResult](Func1 func)
at Volo.Abp.AspNetCore.Mvc.Client.MvcCachedApplicationConfigurationClient.Get()
at Volo.Abp.AspNetCore.Mvc.Client.RemoteLocalizationContributor.GetResourceOrNull(String resourceName)
at Volo.Abp.AspNetCore.Mvc.Client.RemoteLocalizationContributor.GetOrNullInternal(String resourceName, String name)
at Volo.Abp.AspNetCore.Mvc.Client.RemoteLocalizationContributor.GetOrNull(String cultureName, String name)
at Volo.Abp.Localization.LocalizationResourceContributorList.GetOrNull(String cultureName, String name, Boolean includeDynamicContributors)
at Volo.Abp.Localization.AbpDictionaryBasedStringLocalizer.GetLocalizedStringOrNull(String name, String cultureName, Boolean tryDefaults)
at Volo.Abp.Localization.AbpDictionaryBasedStringLocalizer.GetLocalizedString(String name, String cultureName)
at Volo.Abp.Localization.AbpDictionaryBasedStringLocalizer.GetLocalizedString(String name)
at Volo.Abp.Localization.AbpDictionaryBasedStringLocalizer.get_Item(String name)
at Microsoft.AspNetCore.Mvc.Localization.HtmlLocalizer.get_Item(String name)
at AspNetCore.Pages_Index.<ExecuteAsync>b__17_2() in D:\test\aspnet-core\src\MyProject.Web\Pages\Index.cshtml:line 12
googleapisCheck the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, and please first use the search on the homepage. Provide us with the following info:
my angular web app index page can't open
because
fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap

sorry , I can't say english ,please give me chinese support, thanks!
https://docs.abp.io/en/commercial/8.0/startup-templates/application/deployment-iis?UI=NG&DB=EF&Tiered=No
1、我的API HOST DOMAIN IS Https://admin.test.com 使用无托管模式 2、我的 Angular Domain is Https://www.test.com 使用无托管模式 3、发布 angular 站点使用了 ng build --configuration production,打包后把 disc目录 拷贝到 IIS站点的目录下 4、我在IIS站点安装了 URL Rewrite组件 5、API hOST 安装了 openiddict.pfx 证书 且 IIS 的应用程序池设置了 允许加载用户文件 6、数据库的 OpenIddictApplications 表设置了 域名,http://localhost:4200 替换成了Https://www.test.com ,http://localhost:44348 替换成了Https://admin.test.com 7、appsettings.json 配置了 "App": { "SelfUrl": "https://admin.test.com", "AngularUrl": "https://www.test.com", "CorsOrigins": "https://*.test.com,https://www.test.com", "RedirectAllowedUrls": "https://www.test.com", "DisablePII": false, "HealthCheckUrl": "/health-status" },
8、angular 项目的 environment.prod.ts 配置 import { Environment } from '@abp/ng.core';
const baseUrl = 'http://www.test.com';
const oAuthConfig = { issuer: 'https://admin.test.com/', redirectUri: baseUrl, clientId: 'maotai_App', responseType: 'code', scope: 'offline_access maotai', requireHttps: true, };
export const environment = { production: true, application: { baseUrl, name: 'maotai', }, oAuthConfig, apis: { default: { url: 'https://admin.test.com', rootNamespace: 'maotai', }, AbpAccountPublic: { url: oAuthConfig.issuer, rootNamespace: 'AbpAccountPublic', }, }, remoteEnv: { url: '/getEnvConfig', mergeStrategy: 'deepmerge' } } as Environment; 当前报错信息是
The resource requested could not found on the server. Resource not found!
还需要检查哪些地方? OpenIddictApplications 表的设置是否正确? maotai_Swagger 的 客户端,RedirectUris 这样设置是否正确 ["https://admin.test.com/swagger/oauth2-redirect.html"] maotai_App 的客户端 ,RedirectUris 这样设置是否正确 ["https://www.teset.com"]
以上的 test.com 我做了替换,实际域名是可以访问的。
1、abp suite build entity A 2、run system , create A 3、edit A, but Cancel button \ close button IS no response