今天应客户需要将一个修改过的web project发布到在美国的test server上,经过测试一切正常.
本以为是个很简单的事情,确在随后收到了大量由系统发出的error email.全部都是关于一个问题:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
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的几个相关的文件的创建时间有关,如果它们的创建时间大于部署的服务器的时间,就会出现以上问题.