В настоящее время мы запускаем AutoMapper 1.0.1.156 в рабочем режиме на веб-сервисе WCF, и примерно через неделю мы начнем получать следующую ошибку (обратите внимание, что это также происходило в 0.4.0.126, но мы не смогли получить стек трассировка, потому что у нас был только .dll из codeplex и нет .pdb):
Попытка сопоставить DataAccess.Call с DataTypes.Call.
Использование конфигурации сопоставления для DataAccess.Call для DataTypes.Call
Возникло исключение типа 'AutoMapper.AutoMapperMappingException'.
в AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map (контекст ResolutionContext) в C: \ Work \ AutoMapper \ src \ AutoMapper \ MappingEngine.cs: строка 154
в AutoMapper.MappingEngine.Map (Источник объекта, Тип sourceType, Тип destinationType) в C: \ Work \ AutoMapper \ src \ AutoMapper \ MappingEngine.cs: строка 104
в AutoMapper.MappingEngine.Map [TSource, TDestination] (источник TSource) в C: \ Work \ AutoMapper \ src \ AutoMapper \ MappingEngine.cs: строка 34
в AutoMapper.Mapper.Map [TSource, TDestination] (источник TSource) в C: \ Work \ AutoMapper \ src \ AutoMapper \ Mapper.cs: строка 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));
Код запускает поиск в течение недели или около того без ошибок. Как только мы начинаем получать ошибки, если мы перезапускаем пул приложений для веб-службы WCF, ошибка исчезает.
Я дважды проверил, трижды проверил и перепроверил, что src.CallType не может содержать никаких значений, которых нет в перечислении DataTypes.CallType.
Определения класса / перечисления находятся на http://pastebin.com/2pF0gFZ2
Обыскали все и не смогли найти никого другого с этой проблемой.