我在我的网站上使用AutoMapper。它工作得很好,但大约每两周我会得到一个黄页(请参阅下面的堆栈跟踪),解决此问题的唯一方法是重新启动站点(回收应用程序池)。 AutoMapper版本:2.0.9999(如文件属性所示)。
任何想法可能是由什么造成的?这是配置步骤失败(发生一次)吗?
[IndexOutOfRangeException: Index was outside the bounds of the array.]
System.Collections.Generic.Enumerator.MoveNext() +75
System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source, Func`2 predicate) +166
AutoMapper.ConfigurationStore.FindExplicitlyDefinedTypeMap(Type sourceType, Type destinationType) +147
AutoMapper.ConfigurationStore.FindTypeMap(Object source, Type sourceType, Type destinationType, String profileName) +169
AutoMapper.ConfigurationStore.FindTypeMapFor(Object source, Type sourceType, Type destinationType) +279
AutoMapper.MappingEngine.Map(Object source, Type sourceType, Type destinationType) +71
AutoMapper.MappingEngine.Map(TSource source) +190
AutoMapper.Mapper.Map(TSource source) +105
WowReforge.ViewModels.ReforgeViewModel.LoadToonGear(IDictionary`2 gear, IDictionary`2 itemsRefInfo) +307
...
答案 0 :(得分:1)
查看ILSpy中的System.Linq.Enumerable FirstOrDefault,调用IEnumerator.MoveNext,就像你提供的stacktrace中所示。但它并没有说明它是IEnumerator的实现。从那以后很难说出MoveNext中究竟会发生什么。
映射涉及哪些对象?你使用什么类型的收藏?
如果您正在使用自己的IEnumerator实现,那么在为Current提供值或在MoveNext方法中计算错误的索引时,您是否做错了?