EF Code First和IIS回收

时间:2012-02-29 03:42:15

标签: asp.net-mvc entity-framework iis automapper

我们在网站上遇到错误。我检查了事件查看器,当执行应用程序池循环时,EF代码中的问题首先开始上升(请注意,每次都不会发生这种情况,应用程序池每2小时后重复一次,并且有实例虽然并非总是如此,但EF代码首先出现错误经验丰富。)

        var user = GetSingle(u => u.Id == userId);
        if (user == null) throw new ArgumentNullException("user");

        AutoMapper.Mapper.CreateMap<User, SessionUserDetails>();
        var sessionUserDetails = AutoMapper.Mapper.Map<User, SessionUserDetails>(user);

当发生错误时发生映射。如果没有用户,则会抛出ArgumentNullException。我仔细检查了User和SessionUserDetails,两者都有相同的变量。我不知道在哪里可以看。

以下是automapper的例外:

 System.NullReferenceException: Object reference not set to an instance of an object.
 at AutoMapper.ConfigurationStore.<>c__DisplayClass35.  <FindExplicitlyDefinedTypeMap>b__34(TypeMap x)
 at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
 at AutoMapper.ConfigurationStore.FindExplicitlyDefinedTypeMap(Type sourceType, Type destinationType)
 at AutoMapper.ConfigurationStore.CreateTypeMap(Type source, Type destination, String profileName)
 at AutoMapper.ConfigurationStore.CreateMap[TSource,TDestination](String profileName)
 at AutoMapper.ConfigurationStore.CreateMap[TSource,TDestination]()
 at AutoMapper.Mapper.CreateMap[TSource,TDestination]()
 at MVCAujourdhuiBL.Service.UserReg.UserService.GetUserDetails(Int32 userId)

我不知道在哪里可以看。我甚至强迫iis回收,但我不能复制错误。任何帮助将非常感激。 :)谢谢

1 个答案:

答案 0 :(得分:0)

CreateMap调用是否真的在您的Controller Action中?您应该将其拉出到app_start模块中。它不是线程安全的,可能会导致您的问题。

http://automapper.codeplex.com/workitem/3197