一、前言

最近使用AutoMapper的时候,一段时间久会产生System.NullReferenceException:未将对象引用设置到对象的实例。这个问题。后来通过测试,发现部署在IIS上的站点,默认情况下,IIS会在每个间隔固定时间回收AppPool,如果刚刚好有很多请求访问调用了AutoMapper映射的接口,就会产生如下问题。

System.NullReferenceException: 未将对象引用设置到对象的实例。
在 AutoMapper.TypeMapFactory.<>c__DisplayClass3_0.<MapDestinationPropertyToSource>b__0(IMemberConfiguration _)
在 System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
在 AutoMapper.TypeMapFactory.CreateTypeMap(Type sourceType, Type destinationType, IProfileConfiguration options, MemberList memberList)
在 AutoMapper.ConfigurationStore.<>c__DisplayClass80_0.<CreateTypeMap>b__0(TypePair tp)
在 System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
在 AutoMapper.ConfigurationStore.CreateMap[TSource,TDestination](String profileName, MemberList memberList)
在 PaymentPlatform.Test.AutoMapperTest.ProcessRequest(HttpContext context)

二、解决方案

方法一

打开对应IIS站点的应用程序池,点击高级设置。如下图:

将上图中的固定时间间隔(分钟)设置为0.

方法二

可在全局的Application_Start中,定义所有的AutoMapper类型映射。这样就可以保证映射关系的一次性初始化。后续代码无需再定义,只需关注对象转换就可以了。

方法三

也可使用AutoMapper扩展这种方式进行使用,对于不存在的配置,自动创建相关的映射。

最新文章

  1. 3.C#WinForm基础累加器
  2. hihoCoder 1185 连通性&#183;三(Tarjan缩点+暴力DFS)
  3. PHPCMS后台登陆路径修改方法(V9版)
  4. Delphi DateUtils时间单元
  5. VIJOS1240 朴素的网络游戏[DP]
  6. angularJS自定义指令模板替换
  7. 深入理解Redis主键失效原理及实现机制
  8. WCF扩展系列 - 行为扩展(Behaviors)
  9. 第33讲 UI组件_进度条ProcessBar和消息队列处理器handler
  10. mCustomScrollbar的使用
  11. Android平台音频信号FFT的实现
  12. [SAP] 外部系统调用SAP web service用户验证的简单方法
  13. html标签及用法小结
  14. Go语言for循环语句
  15. 倒置输入的整数(C、Python)
  16. 三重DEC加密在java中的实现
  17. java学习-sha1散列算法
  18. c++类型形参的实参的受限转换
  19. OpenStack入门篇(二)之OpenStack架构
  20. js小记:对象、原型及原型链、面向对象编程

热门文章

  1. hdu1540 区间操作,合并,模板题
  2. 【JAVA零基础入门系列】Day6 Java字符串
  3. rem绝对自适应方案
  4. C#下的两种加密方式MD5和DEC
  5. zoj1383 zoj3418 二进制 基础
  6. struts2-学习笔记(一)
  7. Linux硬链接和软连接详解
  8. Spring MVC Ajax 嵌套表单数据的提交
  9. windows下LINUX模拟终端Cypwin以及Vim的配置使用
  10. centos7安装shipyard没有本地容器及镜像