目前,我们正在WCF webservice上运行AutoMapper 1.0.1.156,大约一周后,我们将开始出现以下错误(请注意,这也发生在0.4.0.126中,但我们无法获得堆栈跟踪,因为我们只有codeplex中的.dll和no.pdb):
正在尝试映射数据访问。调用数据类型。呼叫
使用映射配置进行数据访问。调用数据类型。呼叫
“自动映射”类型的例外。引发了AutoMappingException。
在AutoMapper。映射引擎。汽车制造商。我喜欢跑步。在C:\Work\AutoMapper\src\AutoMapper\MappingEngine中映射(ResolutionContext上下文)。政务司司长:第154行
在AutoMapper。映射引擎。在C:\Work\AutoMapper\src\AutoMapper\MappingEngine中映射(对象源,类型sourceType,类型destinationType)。政务司司长:第104行
在AutoMapper。映射引擎。在C:\Work\AutoMapper\src\AutoMapper\MappingEngine中映射[TSource,TDestination](TSource-source)。政务司司长:第34行
在AutoMapper。制图员。在C:\Work\AutoMapper\src\AutoMapper\Mapper中映射[TSource,TDestination](TSource-source)。政务司司长:第21行
以下是发生错误时正在执行的映射的映射配置:
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));
代码运行find大约一周左右,没有出现错误。一旦我们开始出现错误,如果我们为WCF Web服务回收应用程序池,错误就会消失。
我反复检查了,三次检查了,再检查了src。CallType不能包含任何不在枚举数据类型中的值。呼叫类型。
类/枚举定义位于
http://pastebin.com/2pF0gFZ2
搜遍了所有地方,没有发现其他人有这个问题。