Un progetto distribuito in Azure ha recentemente iniziato a generare due o tre di queste eccezioni al giorno. Le mie indagini mostrano che questo è spesso causato da assembly che hanno timestamp futuri su di essi, generalmente causati dalla distribuzione su macchine in altri fusi orari (this was a good resource). Non abbiamo riscontrato questo problema prima dell'anno + che l'app è stata pubblicata e riceve molto più traffico rispetto a quanto suggerito da una manciata di eccezioni.ArgumentOutOfRangeException in Azure da System.Web.HttpCachePolicy.UtcSetLastModified (DateTime utcDate)
Sono stato ridistribuito con il desktop remoto abilitato e ho controllato i timestamp delle nostre DLL e il contenuto delle directory di \ Windows \ Microsoft.NET e \ Windows \ assembly e non ho trovato timestamp "futuri". A questo punto sono bloccato e sarei grato per le idee.
dello stack:
System.ArgumentOutOfRangeException: specificato l'argomento era fuori l'intervallo di valori validi. Nome parametro: UTCDate a System.Web.HttpCachePolicy.UtcSetLastModified (DateTime UTCDate) alla System.Web.HttpCachePolicy.SetLastModified (data DateTime) a System.Web.UI.Page.InitOutputCache (OutputCacheParameters cacheSettings) al sistema. Web.UI.Page.ProcessRequest (booleano includeStagesBeforeAsyncPoint, booleano includeStagesAfterAsyncPoint) a System.Web.UI.Page.ProcessRequest() a System.Web.UI.Page.ProcessRequest (contesto HttpContext) a System.Web.Mvc. OutputCacheAttribute.OnResultExecuting (ResultExecutingContext filterContext) a System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (filtro IResultFilter, ResultExecutingContext preContext, Func
1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func
1 continua a) su System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (filtro IResultFilter, ResultExecutingContext preContext, Func1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList
1 filtri, ActionResult actionResult) su System.Web.Mvc.Async.AsyncControllerActionInvoker. <> c__DisplayClass27.b__24 (IAsyncResult asyncResult) su System.Web.Mvc.AsyncController. <> c__DisplayClass19.b__14 (IAsyncResult asyncResult) in System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass4.b__3 (IAsyncResult ar) in System.Web.Mvc.AsyncController.EndExecuteCore (IAsyncResult asyncResult) in System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass4.b__3 (IAsyncResult ar) su System.Web.Mvc.MvcHandler. <> c__DisplayClass6. <> c__DisplayClassb.b__4 (IAsyncResult asyncResult) su System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass4.b__3 (IAsyncResult ar) a System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() a System.Web.HttpApplication.ExecuteStep (IExecutionStep passo, booleano & completedSynchronously)
I' Sto vedendo lo stesso problema. Ho guardato il codice System.Web.HttpCachePolicy e System.Web.UI.Page (tramite SSCLI) e ho visto che questo dovrebbe essere impossibile. Tale eccezione viene generata quando si tenta di impostare l'ultima data di modifica su una data futura (maggiore di DateTime.UtcNow). Questo non dovrebbe mai accadere poiché il framework utilizza HttpContext.Timestamp, che è impostato su DateTime.UtcNow all'inizio della richiesta. Una possibile spiegazione potrebbe essere NTP (time syncing) kicking mentre la richiesta è in elaborazione? –
Memorizza i dati nella memoria della tabella. Verifica se Datetime è nel formato corretto con l'ora UTC. Controlla anche la conversione di Datetime in stringa e testalo – user145610