2012-10-03 28 views
8

Azure में तैनात एक परियोजना ने हाल ही में इन दो अपवादों में से दो या तीन फेंकना शुरू कर दिया। मेरी जांच से पता चलता है कि यह प्रायः असेंबली के कारण होता है जिनके पास भविष्य में टाइमस्टैम्प होते हैं, आमतौर पर अन्य टाइमज़ोन (this was a good resource) में मशीनों को तैनात करने के कारण होता है। हमें इस समस्या को वर्ष में पहले नहीं मिला है कि ऐप लाइव रहा है, और अपवादों के मुकाबले यह बहुत अधिक ट्रैफिक प्राप्त करता है।सिस्टम से Azure में ArgumentOutOfRangeException.Web.HttpCachePolicy.UtcSetLastModified (डेटटाइम utcDate)

मैंने दूरस्थ डेस्कटॉप सक्षम के साथ पुन: नियोजित किया और हमारे डीएलएस की टाइमस्टैम्प और \ Windows \ Microsoft.NET और \ Windows \ असेंबली निर्देशिकाओं की सामग्री की जांच की, और किसी भी "भविष्य" टाइमस्टैम्प नहीं मिला। इस बिंदु पर मैं अटक गया हूं, और विचारों के लिए आभारी होंगे।

स्टैक ट्रेस: ​​

System.ArgumentOutOfRangeException: निर्दिष्ट तर्क मान्य मानों की श्रेणी से बाहर था। पैरामीटर नाम: System.Web.HttpCachePolicy.SetLastModified (DATETIME तारीख) पर System.Web.HttpCachePolicy.UtcSetLastModified (DATETIME utcDate) पर utcDate System.Web.UI.Page.InitOutputCache (OutputCacheParameters cacheSettings) पर सिस्टम पर । Web.UI.Page.ProcessRequest (बूलियन includeStagesBeforeAsyncPoint, बूलियन includeStagesAfterAsyncPoint) System.Web.UI.Page.ProcessRequest पर() System.Web.UI.Page.ProcessRequest पर (HttpContext संदर्भ) System.Web.Mvc पर। OutputCacheAttribute.OnResultExecuting (ResultExecutingContext filterContext) System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (IResultFilter फ़िल्टर, परिणाम ExecutingContext preContext, Func 1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func 1 जारी रखें एटियन) System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (IRESultFilter फ़िल्टर, परिणाम XxingContext preContext, Func 1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList 1 फ़िल्टर, ActionResult ActionResult) System.Web.Mvc.Async.AsyncControllerActionInvoker पर। <> c__DisplayClass27.b__24 (IAsyncResult asyncResult) System.Web.Mvc.AsyncController पर। <> c__DisplayClass19.b__14 (IAsyncResult asyncResult) System.Web.Mvc.Async.AsyncResultWrapper पर। <> c__DisplayClass4.b__3 (IAsyncResult ए आर) System.Web.Mvc.AsyncController.EndExecuteCore (IAsyncResult asyncResult) पर System.Web.Mvc.Async.AsyncResultWrapper पर। <> c__DisplayClass4.b__3 (IAsyncResult ar) System.Web.Mvc.MvcHandler पर। <> c__DisplayClass6। <> c__DisplayClassb.b__4 (IAsyncResult asyncResult) System.Web.Mvc.Async.AsyncResultWrapper पर। <> c__DisplayClass4.b__3 (IAsyncResult ए आर) System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() पर System.Web.HttpApplication.ExecuteStep पर (IExecutionStep कदम है, बूलियन & completedSynchronously)

+0

मैं से निपटने के लिए की जरूरत नहीं है मैं एक ही मुद्दा देख रहा हूँ। मैंने System.Web.HttpCachePolicy और System.Web.UI.Page कोड (एसएससीएलआई के माध्यम से) देखा और देखा कि यह असंभव होना चाहिए। उस अपवाद को फेंक दिया जाता है जब आप अंतिम संशोधित दिनांक को भविष्य में दिनांक (डेटटाइम.यूटीसीएनओ से अधिक) पर सेट करने का प्रयास करते हैं। ऐसा कभी नहीं होना चाहिए क्योंकि ढांचा HttpContext.Timestamp का उपयोग करता है, जो अनुरोध की शुरुआत में DateTime.UtcNow पर सेट है। अनुरोध संसाधित होने पर एक संभावित स्पष्टीकरण एनटीपी (टाइम सिंकिंग) हो सकता है? –

+0

क्या आप टेबल स्टोरेज में कोई भी डेटा संग्रहीत कर रहे हैं, देखें कि यूटीसी समय के साथ डेटाटाइम सही प्रारूप में है या नहीं। स्ट्रिंग करने और परीक्षण करने के लिए कनवर्टिंग डेटाटाइम को भी जांचें – user145610

उत्तर

0

टाइमज़ोन मुद्दे वास्तव में एज़ूर पर्यावरण में सिरदर्द हैं इसलिए मैं आपको स्टार्टअप कार्य जोड़ने और Azure पर्यावरण के टाइमज़ोन को बदलने का सुझाव देता हूं। मैं दावा नहीं कर रहा हूं कि यह आपकी समस्या का समाधान करेगा लेकिन यह कोशिश करने के लिए चोट नहीं पहुंचाता है? अपने Azure पर्यावरण के टाइमज़ोन को बदलने के लिए:

1) tzutil /s "Pacific Standard Time" को .cmd के रूप में सहेजें और फ़ाइल को अपनी प्रोजेक्ट में शामिल करें।

2) फ़ाइल की प्रॉपर्टी स्क्रीन में, अपनी प्रतिलिपि आउटपुट विकल्प के रूप में "हमेशा कॉपी करें" चुनें और अपनी बिल्ड एक्शन के रूप में "कोई नहीं" चुनें।

3) अपने ServiceDefinition फ़ाइल में निम्न जोड़ें:

<Startup> 
    <Task commandLine="nameOfFileYouCreated.cmd" executionContext="elevated" /> 
</Startup> 

4) और निश्चित रूप से अपनी परियोजना में अपने दिनांक समय संदर्भ अनुकूलन, यदि आप रूपांतरण आदि

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^