System.ArgumentOutOfRangeException at System.Web.HttpCachePolicy.UtcSetLastModified (DateTime utcDate)

今天应客户需要将一个修改过的web project发布到在美国的test server上,经过测试一切正常.

本以为是个很简单的事情,确在随后收到了大量由系统发出的error email.全部都是关于一个问题:

Code
[ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: utcDate]
   System.Web.HttpCachePolicy.UtcSetLastModified(DateTime utcDate) 
+3261043
   System.Web.HttpCachePolicy.SetLastModified(DateTime date) 
+47
   System.Web.Handlers.ScriptResourceHandler.PrepareResponseCache(HttpResponse response, Assembly assembly) 
+194
   System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContext context) 
+1154
   System.Web.Handlers.ScriptResourceHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) 
+4
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
+154
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean
& completedSynchronously) +64

通过google 发现问题竟然是由于我们的时间比美国快整整12小时,所以我们编译项目的时间比测试服务器的时间要整整提前12小时.针对测试服务器来讲这是一个未来的时间.

 这里有对这个问题的分析

 

最后发现是跟asp.net ajax的几个相关的文件的创建时间有关,如果它们的创建时间大于部署的服务器的时间,就会出现以上问题.

你可能感兴趣的:(System.ArgumentOutOfRangeException at System.Web.HttpCachePolicy.UtcSetLastModified (DateTime utcDate))