Tôi nhận được một ngoại lệ được ném vào DateTime.Now trên máy chủ của chúng tôi đang chạy một vài trang web. Điều này đã xảy ra hai lần với tôi trong 3 ngày qua. Rất lạ. Tôi đang tự hỏi liệu điều này đã bắt đầu xảy ra với bản cập nhật mới nhất của Windows và nếu bất kỳ của bạn đã thấy hành vi tương tự sắp tới trongDateTime.Now đang gửi một ngoại lệ
Trường hợp ngoại lệ ném là:.
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)
Mã nơi này xảy ra là người đầu tiên dòng trong lệnh if-:
HttpCookie loggedIn = Request.Cookies[Config.Instance.LoggedInCookieName];
if (loggedIn != null)
{
loggedIn.Expires = DateTime.Now.AddHours(4);
Response.Cookies.Add(loggedIn);
}
Mặc dù có một AddHours trong đó và các ngoại lệ được nói về DateTime.Add, tôi không tin rằng nó có bất cứ điều gì để làm với AddHours, nhưng là do gọi đến Now như bạn có thể thấy trong stack trace.
Máy chủ tôi đang chạy đang chạy Windows Server 2003 và đang chạy ngôn ngữ tiếng Anh (Vương quốc Anh).
Cảm ơn bạn đã được trợ giúp.
Nghe có vẻ giống như một bản cập nhật Windows tinh vi gây ra sự cố hoặc cài đặt bị hỏng .NET ... – Noldorin
Bạn có thể cung cấp dấu vết ngăn xếp đầy đủ không?Có lẽ điều này có liên quan gì đến nó? http://blog.brianhartsock.com/2009/02/21/systemargumentoutofrangeexception-at-systemwebhttpcachepolicyutcsetlastmodifieddatetime-utcdate/ – mellamokb
Tôi biết điều này có vẻ khó xảy ra, nhưng thời gian hệ thống đã được đặt chính xác chưa? – hatchet