当数据有效时,DateTime.ParseExact抛出FormatException

时间:2015-09-22 13:13:10

标签: c# wcf datetime automapper

所以这就是故事 - 在将服务模型映射到域模型时,我在WCF服务中发生了错误。我使用automapper做两个层之间的映射。我的映射字符串如下:

Mapper.CreateMap<WM.CAD.BusinessLayer.Models.Job, JobResponse>()
.ForMember(s => s.DateWanted, 
      m => m.MapFrom(q => !String.IsNullOrWhiteSpace(q.DateWanted) 
      ? DateTime.ParseExact(q.DateWanted, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture) 
      : default(DateTime?)));

一段时间以来一直没有问题,但突然之间我收到了一个错误

  

AutoMapper.AutoMapperMappingException:映射类型:字符串 - &gt;   Nullable1 System.String - &gt; System.Nullable1 [System.DateTime的,   mscorlib,版本= 4.0.0.0,文化=中性,   PublicKeyToken = b77a5c561934e089]]目的地路径:   JobResponse.DateWanted.DateWanted来源价值:20150916 ---&gt;   System.FormatException:20150916不是DateTime的有效值。   ---&GT; System.FormatException:String未被识别为有效的DateTime。

格式正确yyyyMMdd源值是20150916.它让我大吃一惊,我无法弄清楚为什么会出现这个错误。一旦发生第一个错误,服务的所有后续事务也会中断,直到服务器上的应用程序池重置为止。重置应用程序池后,即使对于说它已损坏的事务,一切都正常工作。我不知道它是否是DateTime.PraseExact或Automapper的错误任何帮助都会很好,因为我失去了我的记住它。

更新

经过更多调查后发现服务器上的内存使用率很高,而且在问题发生之前的服务器上CPU使用率很高。另一件事是应用程序池在发生错误的同时重启了它...这是巧合吗?应用程序池重置本身是否会导致这些类型的错误?

0 个答案:

没有答案