IdentityServer4与AutoMapper 10.1.1在.NET7环境下的异常问题
IdentityServer4 + AutoMapper 10.1.1 + .NET7 兼容性问题
问题1:访问端点触发ArgumentException异常
使用最后免费版IdentityServer4、AutoMapper 10.1.1与.NET7时,访问/.well-known/openid-configuration端点会抛出如下ArgumentException异常:
ArgumentException: GenericArguments[0], 'System.Char', on 'T MaxFloat[T](System.Collections.Generic.IEnumerable`1[T])' violates the constraint of type 'T'. System.RuntimeType.ValidateGenericArguments(MemberInfo definition, RuntimeType[] genericArguments, Exception e) System.Reflection.RuntimeMethodInfo.MakeGenericMethod(Type[] methodInstantiation) AutoMapper.TypeDetails+<>c__DisplayClass28_1.<BuildPublicNoArgExtensionMethods>b__10(MethodInfo extensionMethod) System.Linq.Enumerable+WhereSelectArrayIterator<TSource, TResult>.MoveNext() System.Linq.Enumerable+ConcatIterator<TSource>.MoveNext() System.Linq.Enumerable.SelectManyIterator<TSource, TCollection, TResult>(IEnumerable<TSource> source, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector)+MoveNext() System.Linq.Enumerable+WhereSelectEnumerableIterator<TSource, TResult>.MoveNext() System.Collections.Generic.HashSet<T>.UnionWith(IEnumerable<T> other) System.Linq.Enumerable+UnionIterator<TSource>.FillSet() System.Linq.Enumerable+UnionIterator<TSource>.ToArray() AutoMapper.TypeDetails.BuildPublicNoArgExtensionMethods(IEnumerable<MethodInfo> sourceExtensionMethodSearch) AutoMapper.TypeDetails..ctor(Type type, ProfileMap config) AutoMapper.ProfileMap.TypeDetailsFactory(Type type) AutoMapper.Internal.LockingConcurrentDictionary<TKey, TValue>+<>c__DisplayClass2_1.<.ctor>b__1() System.Lazy<T>.ViaFactory(LazyThreadSafetyMode mode) System.Lazy<T>.ExecutionAndPublication(LazyHelper executionAndPublication, bool useDefaultConstructor) System.Lazy<T>.CreateValue() AutoMapper.Internal.LockingConcurrentDictionary<TKey, TValue>.GetOrAdd(TKey key) AutoMapper.ProfileMap.CreateTypeDetails(Type type) AutoMapper.TypeMapFactory.CreateTypeMap(Type sourceType, Type destinationType, ProfileMap options, bool isReverseMap) AutoMapper.ProfileMap.BuildTypeMap(IConfigurationProvider configurationProvider, ITypeMapConfiguration config) AutoMapper.ProfileMap.Register(IConfigurationProvider configurationProvider) AutoMapper.MapperConfiguration.Seal() AutoMapper.MapperConfiguration..ctor(MapperConfigurationExpression configurationExpression) AutoMapper.MapperConfiguration..ctor(Action<IMapperConfigurationExpression> configure) IdentityServer4.EntityFramework.Mappers.IdentityResourceMappers..cctor() // Put your source/destination types here
该异常是AutoMapper的已知问题,在其更高版本中已修复,但IdentityServer4对AutoMapper的版本限制为≥10且<11,无法直接升级到修复版本。
问题2:升级AutoMapper触发MissingMethodException异常
尝试将AutoMapper升级到10.x系列的更高版本时,会抛出如下MissingMethodException异常:
System.MissingMethodException: Method not found: '!2 AutoMapper.IMappingExpressionBase`3.ConstructUsing(System.Linq.Expressions.Expression`1<System.Func`2<!0,!1>>)'. at IdentityServer4.EntityFramework.Mappers.ClientMapperProfile..ctor() at System.RuntimeType.CreateInstanceOfT()
内容的提问来源于stack exchange,提问作者Karim Moghnieh
相关产品推荐
相关产品推荐

