2012-09-20 4 views
5

Ayende के एक प्रकार का जानवर ब्लॉग के स्रोत देखते हुए मैं global.asax.cs में यह देखा:.NET में उरी बग क्या है कि आयेंडे रेकून ब्लॉग स्रोत कोड में संदर्भित है?

// Work around nasty .NET framework bug 
try 
{ 
    new Uri("http://fail/first/time?only=%2bplus"); 
} 
catch (Exception) 
{ 
} 

यह एक बग है कि पहले अनुरोध पर होता है के लिए एक समाधान हो गया लगता है। क्या किसी को पता है कि बग क्या है या इसे पुन: उत्पन्न कैसे किया जाए?

+0

क्या आपको वास्तव में इसके साथ कोई समस्या है, या सिर्फ सोच रहा है क्योंकि आपने इसे उस कोड में देखा है? यह मेरे लिए ठीक काम करता है, और आईएलएसपी में 'उरी' कन्स्ट्रक्टर को देखकर, ऐसा लगता है कि यह असफल हो जाएगा। ऐसी स्थितियां जो उस निर्माता को 'UriFormatException' फेंकने का कारण बनेंगी: http://msdn.microsoft.com/en-us/library/z6c2z492(v=vs.100).aspx – Gromer

+0

क्या आपने इसे हटा दिया और देखा कि कुछ विफल हुआ है या नहीं? – Paparazzi

+2

नहीं, मुझे कोई समस्या नहीं आई, यही कारण पूछने के लिए और अधिक है, क्योंकि मुझे नहीं लगता कि वे इसे मस्ती के लिए वहां रखते हैं। यह जानना अच्छा होगा कि कब और कब आप असफल होने से बच सकते हैं। –

उत्तर

2

Googling के बारे में थोड़ी मार्च 2010 से this Ayende blog post जाता है जहाँ से मैं एक अंश उद्धृत:

मैं इस अब यह पुन: पेश कर सकते हैं, यह इस प्रकार वहाँ गया:

public class Strange : MarshalByRefObject 
{ 
    public void WTF() 
    { 
     Console.WriteLine(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); 
     new Uri("http://localhost:58080/indexes/categoriesByName?query=CategoryName%3ABeverages&start=0&pageSize=25"); 
    } 
} 

public class Program 
{ 
    private static void Main() 
    { 
     var instanceAndUnwrap = (Strange) AppDomain.CreateDomain("test", null, new AppDomainSetup 
     { 
      ConfigurationFile = "" 
     }).CreateInstanceAndUnwrap("ConsoleApplication5", "ConsoleApplication5.Strange"); 
     instanceAndUnwrap.WTF(); 
    } 
} 

कि कुछ ले लिया पता लगाने के लिए समय।

नीचे टिप्पणी धागा है, जो मैं स्किम्ड है, लेकिन विस्तार से पढ़ा नहीं से, मूल कारण मशीन जड़ config फ़ाइल में एक त्रुटि है, जो केवल एक बार प्रति पार्स किया गया है प्रतीत होता है? AppDomain, इसलिए दूसरी और बाद के समय में त्रुटि की कमी।

आदत से इस निर्माण का उपयोग करके इसे एक बार जला दिया गया है, इस तरह की आदत है कि प्रोग्रामर कठिन अनुभव के माध्यम से जमा हो जाते हैं। कम अनुभवी "कार्गो पंथ" या "संयोग से प्रोग्रामिंग" स्निगर कर सकता है, जिसके लिए अधिक अनुभवी बस मुस्कान और चिल्लाएगा।

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