ArgumentOutOfRangeException in Azure aus System.Web.HttpCachePolicy.UtcSetLastModified (DateTime-utcDate)

8

Ein Projekt, das in Azure bereitgestellt wird, hat vor kurzem zwei oder drei dieser Ausnahmen pro Tag ausgelöst. Meine Untersuchung zeigt, dass dies häufig durch Assemblys verursacht wird, die in der Zukunft Zeitstempel enthalten, die in der Regel durch die Bereitstellung auf Computern in anderen Zeitzonen verursacht werden ( das war eine gute Ressource ). Wir hatten dieses Problem noch nie im Jahr + dass die App live war und es viel mehr Verkehr erhält, als die Handvoll Ausnahmen vorschlagen würden.

Ich habe die Implementierung mit aktiviertem Remote-Desktop durchgeführt und die Zeitstempel unserer DLLs sowie den Inhalt der \ Windows \ Microsoft.NET- und \ Windows \ Assembly-Verzeichnisse überprüft und keine "zukünftigen" Zeitstempel gefunden. An dieser Stelle stecke ich fest und wäre dankbar für Ideen.

Stapelverfolgung:

  

System.ArgumentOutOfRangeException: Das angegebene Argument lag außerhalb des gültigen Wertebereichs.   Parametername: utcDate     bei System.Web.HttpCachePolicy.UtcSetLastModified (DateTime-utcDate)     bei System.Web.HttpCachePolicy.SetLastModified (DateTime-Datum)     bei System.Web.UI.Page.InitOutputCache (OutputCacheParameters cacheSettings)     bei System.Web.UI.Page.ProcessRequest (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)     bei System.Web.UI.Page.ProcessRequest ()     bei System.Web.UI.Page.ProcessRequest (HttpContext-Kontext)     bei System.Web.Mvc.OutputCacheAttribute.OnResultExecuting (ResultExecutingContext filterContext)     bei System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (IResultFilter-Filter, ResultExecutingContext preContext, Func 1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func 1 Fortsetzung)     bei System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (IResultFilter-Filter, ResultExecutingContext preContext, Func 1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList 1 Filter, ActionResult actionResult)     bei System.Web.Mvc.Async.AsyncControllerActionInvoker. & lt; & gt; c__DisplayClass27.b__24 (IAsyncResult asyncResult)     at System.Web.Mvc.AsyncController. & lt; & gt; c__DisplayClass19.b__14 (IAsyncResult asyncResult)     at System.Web.Mvc.Async.AsyncResultWrapper. & lt; & gt; c__DisplayClass4.b__3 (IAsyncResultar)     bei System.Web.Mvc.AsyncController.EndExecuteCore (IAsyncResult asyncResult)     at System.Web.Mvc.Async.AsyncResultWrapper. & lt; & gt; c__DisplayClass4.b__3 (IAsyncResultar)     at System.Web.Mvc.MvcHandler. & lt; & gt; c__DisplayClass6. & lt; & gt; c__DisplayClassb.b__4 (IAsyncResult asyncResult)     at System.Web.Mvc.Async.AsyncResultWrapper. & lt; & gt; c__DisplayClass4.b__3 (IAsyncResultar)     bei System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()     at System.Web.HttpApplication.ExecuteStep (IExecutionStep Schritt, Boolean & amp; abgeschlossenSynchron)

    
Will 03.10.2012, 15:55
quelle

1 Antwort

0

Zeitzonenprobleme bereiten in Azure Environment wirklich Kopfschmerzen. Daher empfehle ich Ihnen, eine Startaufgabe hinzuzufügen und die Zeitzone von Azure Environment zu ändern. Ich behaupte nicht, dass dies Ihr Problem lösen wird, aber es tut nicht weh, es zu versuchen? So ändern Sie die Zeitzone Ihrer Azure-Umgebung:

1) Speichern Sie tzutil /s "Pacific Standard Time" als .cmd und fügen Sie die Datei Ihrem Projekt hinzu.

2) Wählen Sie im Eigenschaftsbildschirm der Datei "Copy Always" als Ihre Option "Copy to Output" und "None" als Build Action.

3) Fügen Sie Ihrer ServiceDefinition-Datei Folgendes hinzu:

%Vor%

4) Und passen Sie natürlich Ihre DateTime-Referenzen in Ihrem Projekt an, Sie müssen sich nicht mit Konvertierungen usw. befassen.

    
sotn 08.05.2013 07:25
quelle

Tags und Links