MappingEngine.cs中的AutoMapper索引超出范围异常

时间:2010-03-31 16:32:22

标签: c# exception automapper

目前我们正在WCF Web服务上运行AutoMapper 1.0.1.156,大约一周左右后我们将开始出现以下错误(注意这也发生在0.4.0.126但我们无法获得堆栈跟踪,因为我们只有codeplex的.dll而没有.pdb):

  

尝试将DataAccess.Call映射到DataTypes.Call   使用DataAccess.Call的映射配置到DataTypes.Call
  抛出了“AutoMapper.AutoMapperMappingException”类型的异常   在AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext context)中的C:\ Work \ AutoMapper \ src \ AutoMapper \ MappingEngine.cs:第154行
  at AutoMapper.MappingEngine.Map(Object source,Type sourceType,Type destinationType)在C:\ Work \ AutoMapper \ src \ AutoMapper \ MappingEngine.cs:第104行
  at AutoMapper.MappingEngine.Map [TSource,TDestination](TSource source)在C:\ Work \ AutoMapper \ src \ AutoMapper \ MappingEngine.cs:第34行
  at AutoMapper.Mapper.Map [TSource,TDestination](TSource source)在C:\ Work \ AutoMapper \ src \ AutoMapper \ Mapper.cs:第21行

以下是发生错误时正在执行的Map的映射配置:

Mapper.CreateMap<DataAccess.Call, DataTypes.Call>()
    .ForMember(dest => dest.CallTypeId, opt => opt.MapFrom(src => src.CallType))
    .ForMember(dest => dest.CallType, opt => opt.MapFrom(src => (DataTypes.CallType)src.CallType));

代码运行大约一周左右,没有错误。一旦我们开始收到错误,如果我们为WCF Web服务回收应用程序池,那么错误就会消失。

我进行了双重检查,三重检查,并重新检查src.CallType不能包含任何不在枚举DataTypes.CallType中的值。

类/枚举定义位于http://pastebin.com/2pF0gFZ2

全部搜索过,找不到其他人遇到此问题。

0 个答案:

没有答案