abpframework / eShopOnAbp

Reference microservice solution built with the ABP Framework and .NET, runs on Kubernetes with Helm configuration, includes API Gateways, Angular and ASP.NET Core MVC applications, PostgreSQL and MongoDB databases
https://www.eShopOnAbp.com/
MIT License
664 stars 259 forks source link

Unexpected Casting Error in AbpApplicationConfigurationController.GetAsync after ABP Framework Update to 7.4.3 and .NET 8 #212

Closed alihdev closed 5 months ago

alihdev commented 6 months ago

After upgrading to ABP Framework version 7.4.3 and migrating to .NET 8, an unexpected casting error occurs in the authorization policy handling when attempting to retrieve application configurations using AbpApplicationConfigurationController.GetAsync.

Error Details: The error message suggests a casting problem between System.Collections.Generic.Dictionary and System.Collections.Generic.IDictionary, particularly in the method GetPoliciesNames within Microsoft.AspNetCore.Authorization.AuthorizationOptionsExtensions.

Logs:

Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController.GetAsync (Volo.Abp.AspNetCore.Mvc) - Validation state: Valid
[administration-service_52ba6acd-7]: [15:13:57 ERR] ---------- RemoteServiceErrorInfo ----------
[administration-service_52ba6acd-7]: {
[administration-service_52ba6acd-7]: "code": null,
[administration-service_52ba6acd-7]: "message": "An internal error occurred during your request!",
[administration-service_52ba6acd-7]: "details": null,
[administration-service_52ba6acd-7]: "data": {},
[administration-service_52ba6acd-7]: "validationErrors": null
[administration-service_52ba6acd-7]: }
[administration-service_52ba6acd-7]:
[administration-service_52ba6acd-7]: [15:13:57 ERR] Unable to cast object of type 'System.Collections.Generic.Dictionary`2[System.String,System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Authorization.AuthorizationPolicy]]' to type 'System.Collections.Generic.IDictionary`2[System.String,Microsoft.AspNetCore.Authorization.AuthorizationPolicy]'.
[administration-service_52ba6acd-7]: System.InvalidCastException: Unable to cast object of type 'System.Collections.Generic.Dictionary`2[System.String,System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Authorization.AuthorizationPolicy]]' to type 'System.Collections.Generic.IDictionary`2[System.String,Microsoft.AspNetCore.Authorization.AuthorizationPolicy]'.
[administration-service_52ba6acd-7]: at Microsoft.AspNetCore.Authorization.AuthorizationOptionsExtensions.GetPoliciesNames(AuthorizationOptions options)
[administration-service_52ba6acd-7]: at Volo.Abp.Authorization.AbpAuthorizationPolicyProvider.GetPoliciesNamesAsync()
[administration-service_52ba6acd-7]: at Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationAppService.GetAuthConfigAsync()
[administration-service_52ba6acd-7]: at Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationAppService.GetAsync(ApplicationConfigurationRequestOptions options)
[administration-service_52ba6acd-7]: at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)
[administration-service_52ba6acd-7]: at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()
[administration-service_52ba6acd-7]: at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
[administration-service_52ba6acd-7]: at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)

Steps to Reproduce:

Any assistance or guidance on resolving this issue in the updated environment would be highly appreciated.

Thank you!

maliming commented 6 months ago

hi

You have to upgrade abp to 8.0 version

image

https://docs.abp.io/en/abp/8.0/Migration-Guides/Abp-8_0

gterdem commented 6 months ago

We'll be updating eShopOnAbp sample to ABP v8.0 when the stable version is released.

gterdem commented 5 months ago

Closing the issue as eShopOnAbp sample is updated to v8.0.