设为首页 收藏本站
查看: 1346|回复: 0

[经验分享] AutoMapper IIS回收引发的 未将对象引用设置到对象实例

[复制链接]

尚未签到

发表于 2017-12-27 22:04:45 | 显示全部楼层 |阅读模式
一、前言
  最近使用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站点的应用程序池,点击高级设置。如下图:
  
DSC0000.png
  将上图中的固定时间间隔(分钟)设置为0.

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

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-428761-1-1.html 上篇帖子: IIS Express 配置缓存位置 下篇帖子: 用Nginx搭建IIS集群实现负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表