http://ayende.com/blog/4599/hunt-the-bug के अनुसार, मैंने उन परिदृश्यों में से एक में भाग लिया है जिससे "इस संदर्भ में प्रतिक्रिया उपलब्ध नहीं है"।HttpUtility.UrlEncode और Application_Start
बहुत सरल है, तो निम्न Windows सर्वर पर कुछ निश्चित परिस्थितियों में एक अपवाद फेंकता 2008/IIS7/ASP.NET 4,0
public class Global : HttpApplication
{
public void Application_Start(object sender, EventArgs e)
{
HttpUtility.UrlEncode("Error inside!");
}
}
समाधान है कि मैंने देखा है शामिल निम्न में से एक:
- जैसा कि अयेंडे ने किया था और "इस बग से बचने के लिए अपनी खुद की हताशता लिखें (अच्छी तरह से, मोनो से इसे ले जाएं और इसे संशोधित करें)।"
- या यह निर्धारित करें कि HttpEncoder.Default का उपयोग करना चाल है। मैं यह ट्रैक करने की कोशिश कर रहा हूं कि यह कैसे करना है।
- या प्रति Server.UrlEncode vs. HttpUtility.UrlEncode
शायद यह मेरे सबसे अच्छे Googling दिन है, लेकिन कैसे HttpEncoder.Default लागू करने के लिए नहीं कर रहा है के रूप में Uri.EscapeDataString का उपयोग करें?
सिफारिशें?
अच्छी नौकरी। यहाँ प्रतिबिंब/डिकोडर हिस्सा सार्वजनिक स्थैतिक स्ट्रिंग UrlDecode है (स्ट्रिंग urlPart) { वापसी typeof (System.Net.WebClient) .Assembly .GetType ("System.Net.HttpListenerRequest + सहायकों") .InvokeMember ("UrlDecodeStringFromStringInternal", बाइंडिंगफ्लैग्स.NonPublic | बाइंडिंगफ्लैग्स.स्टैटिक | बाइंडिंगफ्लैग्स.इनवोक मोड, शून्य, शून्य, नई ऑब्जेक्ट [] {urlPart, Encoding.UTF8}) स्ट्रिंग के रूप में; } –
@DmitryDzygin डिकोडर – Beygi
प्रतिक्रिया के लिए धन्यवाद। इसे उत्तर के रूप में चिह्नित किया है, भले ही मैं सिर्फ मोनो संस्करण को अनुकूलित करने जा रहा हूं (https://github.com/mono/mono/blob/master/mcs/class/System.Web/System.Web/HttpUtility देखें .cs) बस इसलिए कि मैं System.Web पर निर्भरता से भी दूर हो सकता हूं जो केवल HttpUtility.UrlEncode के कारण है। – Ted