В настоящее время я застрял с таймаутом apppool и автоматом.
В моем Global.asax я написал в функции Application_start следующий код.
Mapper.Initialize(cfg =>
{
cfg.CreateMissingTypeMaps = false;
cfg.CreateMap<string, MvcHtmlString>()
.ConvertUsing<MvcHtmlStringConverter>();
// Get all my project assemblies
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(
x => x.GetName().Name.StartsWith("MyMvcApplication.")).ToArray();
// Add all assemblies to automapper to search for defined profiles.
cfg.AddProfiles(assemblies);
});
Сначала, если я перестроил свой проект MVC и зашел на мою страницу, все работает нормально.
Все мои сопоставления из многих сборок определены так, как и ожидалось.
Теперь проблема:
Если я жду истечения времени ожидания приложения (например, определено 5 минут) и получаю доступ к моему веб-сайту через 5 минут, я получаю «AutoMapper.AutoMapperMappingException: отсутствует конфигурация карты типов или неподдерживаемое отображение». если автопроизводитель пытается отобразить некоторые модели из сборок, кроме основной сборки.
Структура раствора:
Все сопоставления, определенные в AutoMapperProfiles из Интернета, которые ссылаются на модели в веб-проекте и сервисном проекте, по-прежнему определены в автопрокатчике.
Все сопоставления, определенные в AutoMapperProfiles из проекта Service, который ссылается на ServiceModels и Entites, ПРОПУСКАЮТСЯ в autopper.
Если я звоню "Mapper.Configuration.GetAllTypeMaps ()", я получаю следующие результаты
До истечения времени ожидания: {AutoMapper.TypeMap[30]}
После тайм-аута: {AutoMapper.TypeMap[13]}
Таким образом, автомаппер теряет свои отображения после того, как приложение начинает спать.
Пример профиля автомпера:
namespace MyMvcApplication.Services.MappingProfiles
{
using AutoMapper;
using MyMvcApplication.DataAccess.DAL;
using MyMvcApplication.Services.Models.Users;
public class UserMappingProfile : Profile
{
public UserMappingProfile()
{
base.CreateMap<UserEntity, User>();
base.CreateMap<UserEntity, BasicUser>();
base.CreateMap<UserEntity, OverviewUser>();
base.CreateMap<UserEntity, LoginUser>();
}
}
}
Кто-нибудь знает, что я делаю не так с реализацией autopper?
С уважением