Исключение за пределами индекса AutoMapper в MappingEngine.cs - PullRequest
2 голосов
/ 31 марта 2010

В настоящее время мы запускаем 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

Обыскали все и не смогли найти никого другого с этой проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...