DateTime.Now está lanzando una excepción
Estoy recibiendo una excepción en DateTime. Ahora en nuestro servidor que ejecuta algunos sitios web. Esto me ha pasado dos veces en los últimos 3 días. Muy extraño. Me pregunto si esto ha comenzado a suceder con la última actualización de Windows y si alguno de ustedes ha visto un comportamiento similar en el futuro.
La excepción lanzada es:
<code>BASE EXCEPTION: TYPE: System.ArgumentOutOfRangeException MESSAGE: Value to add was out of range. Parameter name: value STACK TRACE: at System.DateTime.Add(Double value, Int32 scale) at System.TimeZoneInfo.TransitionTimeToDateTime(Int32 year, TransitionTime transitionTime) at System.TimeZoneInfo.GetDaylightTime(Int32 year, AdjustmentRule rule) at System.TimeZoneInfo.GetIsDaylightSavingsFromUtc(DateTime time, Int32 Year, TimeSpan utc, AdjustmentRule rule, Boolean& isAmbiguousLocalDst) at System.TimeZoneInfo.GetDateTimeNowUtcOffsetFromUtc(DateTime time, Boolean& isAmbiguousLocalDst) at System.DateTime.get_Now() at (my code).FrontEnd.FrontEndPage.Page_Load(Object sender, EventArgs e) in (my code file)\code\presentation\FrontEndPage.cs:line 118 at (my code).purchase.Page_Load(Object sender, EventArgs e) in (my code file)\purchase.aspx.cs:line 94 at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) </code>
El código donde ocurre esto es la primera línea en la sentencia if:
<code>HttpCookie loggedIn = Request.Cookies[Config.Instance.LoggedInCookieName]; if (loggedIn != null) { loggedIn.Expires = DateTime.Now.AddHours(4); Response.Cookies.Add(loggedIn); } </code>
Aunque hay un AddHours allí y la excepción es hablar de DateTime.Add, no creo que tenga nada que ver con AddHours, sino que se debe a la llamada a Ahora, como se puede ver en el seguimiento de la pila.
El servidor en el que estoy está ejecutando Windows Server 2003 y está ejecutando la configuración regional en inglés (Reino Unido).
Gracias por cualquier ayuda.