2009-06-23 7 views
16

मुझे एक अजीब त्रुटि मिल रही है। मैंने एक स्क्रिप्ट सेट की है जो फिडलर खुला होने पर पूरी तरह से काम करता है - यह httpwebrequest का उपयोग कर वेबसाइट से एक रिपोर्ट डाउनलोड करता है और सब कुछ ठीक काम करता है!Fttler के साथ Httpwebreqest काम करता है अन्यथा टाइमआउट

हाउवर यह केवल तब काम करता है जब फिडलर खुला रहता है? जब फिडलर काम नहीं कर रहा है तो मुझे बस "अनुरोध समय समाप्ति जारी करें"

क्या कोई यह जानता है कि इसे कैसे ठीक किया जाए और इसे मेरे एएसपी.नेट एमवीसी ऐप के साथ कैसे काम करें?

धन्यवाद

संपादित करें: प्रतिक्रिया के लिए धन्यवाद! प्रॉक्सी के बारे में - मैं विंडोज़ एज़ूर पर इस स्क्रिप्ट का परीक्षण करना चाहता था - डिफ़ॉल्ट प्रॉक्सी सेटिंग्स को कैसे सेट अप करें इस बारे में बहुत उलझन में?

+1

मैं कुछ लोगों को सुना है * बढ़ता है * अपलोड प्रदर्शन बनाम कुछ सामान्य ग्राहक विन्यास। आम तौर पर, जब तक कि आप क्लाइंट सॉफ़्टवेयर को ट्यून नहीं कर सकते (उदा। अपलोड बफर आकार बदलना) आपकी सबसे अच्छी शर्त सर्वर पर टाइमआउट को अपलोड करने से पहले लंबी अवधि की अनुमति देने के लिए है। * क्यों * फिडलर इस परिदृश्य में मदद करता है, फिडलर बफर डिफ़ॉल्ट रूप से अनुरोध करता है, इसलिए आपका एप्लिकेशन फिडलर को पूरा अनुरोध भेजता है, जो इसे सब कुछ एकत्र करता है, फिर सर्वर से कनेक्शन बनाता है, और सर्वर को डेटा को विस्फोट करता है जितनी जल्दी हो सके। – EricLaw

उत्तर

2

ध्यान रखें कि फिडलर प्रॉक्सी के रूप में कार्य करता है। फ़िडलर चल रहा है जब कोई एप्लिकेशन काम कर रहा है लेकिन अन्यथा आपके डिफ़ॉल्ट प्रॉक्सी सेटअप के साथ समस्या का संकेत नहीं दे सकता है। ओपन इंटरनेट विकल्प (संभवतः आईई के माध्यम से) और अपनी प्रॉक्सी सेटिंग्स की जांच करें। विशेष रूप से, ध्यान दें कि क्या आप एक स्क्रिप्ट के माध्यम से कॉन्फ़िगर कर रहे हैं।

मैं एक बहुत ही असंभव संभावना का उल्लेख करूंगा, हालांकि यह वास्तव में मेरे साथ हुआ था। मेरे पास मेरी मशीन पर एक निश्चित एंटी-वायरस उत्पाद स्थापित था। किसी कारण से, यह सोचा कि मेरा सदस्यता समाप्त हो गया है। नतीजा यह था कि सॉफ्टवेयर नहीं चलाया जाएगा, और इसलिए इंटरनेट तक पहुंचने के लिए अनुमत कार्यक्रमों की सूची अपडेट नहीं कर सका। समाप्ति के बाद स्थापित किए गए कार्यक्रम तब तक काम नहीं करेंगे जब तक कि फिडलर चल रहा था (चूंकि फिडलर को समाप्ति से पहले स्थापित किया गया था, यह "अच्छी" सूची पर था)। समाप्ति के बाद स्थापित कोई अन्य प्रोग्राम "खराब" सूची (डिफ़ॉल्ट रूप से) पर था।

+0

प्रतिक्रिया के लिए धन्यवाद! प्रॉक्सी के बारे में - मैं विंडोज़ एज़ूर पर इस स्क्रिप्ट का परीक्षण करना चाहता था - डिफ़ॉल्ट प्रॉक्सी सेटिंग्स को कैसे सेट अप करें इस बारे में बहुत उलझन में? –

+0

क्या आपके पास अभी तक आपके सामान्य विंडोज सिस्टम पर चल रहा है? Azure के साथ खुद को चिंता करने से पहले ऐसा करें। –

1

क्या आप HTTPS के साथ चल रहे हैं? यदि ऐसा है, तो आपका कोड दूरस्थ साइट के प्रमाणपत्र पर भरोसा नहीं कर सकता है, और फिडलर आपके ऐप पर डेटा के साथ गुजर रहा है। हमें त्रुटि संदेश और कम से कम कोड भेजें जो इस समस्या को दोहराता है।

+0

हाय डेव, हाँ - HTTPS के साथ चल रहा है। मैं अपने पीसी पर नहीं हूं जहां कोड (काम पर) किसी भी विचार (यदि यह मामला है) इस प्रोब को कैसे ठीक किया जाए? –

+0

http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.servercertificatevalidationcallback.aspx पर एक नज़र डालें। आप जिस साइट से बात कर रहे हैं उसके प्रमाण को स्वीकार करने के लिए आपको शायद अपना कोड बताने की आवश्यकता होगी। –

+0

साइट गलत गलती पेश कर रही है तो फिडलर एक मोडल चेतावनी संवाद दिखाएगा, इसलिए मुझे नहीं लगता कि यह उपयोगकर्ता क्या सामना कर रहा है। – EricLaw

11

खोजकर्ताओं के लिए, यहां एक और विचार है। मेरे पास एक ऐसा एप्लिकेशन है जो रोबोटिक फैशन में मेरी वेबसाइट का उपयोग करता है। एप्लिकेशन .NET 4.0 में HttpWebRequest और HttpWebResponse का उपयोग करता है। दो या 3 सफल जीईटी के बाद, अगला लगातार लॉक होगा। एक अन्य पोस्ट ने सुझाव दिया कि एक ही मेजबान को समानांतर कनेक्शन की संख्या पर सीमा के कारण एक ही होस्ट को बाद में GET पर एक ब्लॉक को ब्लॉक करने के लिए एक एप्लिकेशन को बंद करने के लिए एप्लिकेशन का कारण बन सकता है। मुझे नहीं पता कि कवर के तहत क्या हो रहा था, लेकिन मैंने सोचा कि मैं वापस जाऊंगा और यह निर्धारित करूँगा कि मैं कहां बंद कर सकता हूं।

मैंने कोड में अपने सभी HttpWebResponse ऑब्जेक्ट्स को बंद कर दिया और मेरी समस्या दूर हो गई। इससे मैं नहीं देखता कि फिडलर इस मुद्दे को क्यों मुखौटा करेगा, लेकिन ऐसा हुआ। बंद करने से पहले, अनुक्रम में एक विशिष्ट अनुरोध लगातार समय समाप्त होगा। प्रतिक्रियाओं को बंद करने के बाद, सब कुछ साफ़ हो गया और मैं फिडलर के माध्यम से प्रॉक्सी के बिना दौड़ सकता था।

+0

हाँ यह मेरा मुद्दा था। इतना आसान, यह 2 अनुरोधों के बाद लगातार विफल रहा था। धन्यवाद प्रोफेसर! –

+0

मैं भी पुष्टि कर सकता हूं - एक साधारण प्रतिक्रिया। बंद करें(); मेरी समस्या तय – Anders

+0

मैं इस पोस्ट के लिए अपना धन्यवाद भी जोड़ना चाहूंगा (4 साल बाद!), क्योंकि यह पावरहेल 3 और सिस्टम.Net पर भी लागू होता है। वेब्रेक्वेस्ट ऑब्जेक्ट्स को स्कॉप से ​​बाहर होने पर साफ़ नहीं किया जा रहा है; इसलिए मुझे दायरे से बाहर जाने से पहले और सभी प्रयास/पकड़ ब्लॉक में [System.Net.WebRequest] .abort() पर एक कॉल जोड़ना पड़ा। – JonnyG

3

सभी HttpWebRequest ऑब्जेक्ट्स को बंद करने के रूप में @ProfVonLemongargle ने मुझे वही समस्या तय करने का सुझाव दिया।

फिडलर सर्वर से कनेक्शन बंद कर सकता है, इसलिए जब आपका ऐप प्रॉक्सी के रूप में उपयोग कर रहा है तो समवर्ती कनेक्शन सीमा को मुखौटा किया जाता है। अतिरिक्त जानकारी के लिए यह धागा देखें: HttpWebRequest times out on second call

1

पुरानी श्रृंखला, लेकिन मुझे हमारे कोड में एक ही समस्या मिली। ऐसा इसलिए था क्योंकि जावास्क्रिप्ट में बचे हुए console.log कमांड थे। इससे जावास्क्रिप्ट कोड अवरुद्ध हो गया।

0

कॉर्पोरेट नेटवर्क पर एक ही समस्या थी, मैंने फिडलर 2 खोला जो कि भेजा गया/प्राप्त किया गया था और समस्या दूर हो गई! आगे के शोध के बाद मैंने पाया कि फिडलर सुरंगों के माध्यम से प्रॉक्सी की तरह यातायात और मेरा कॉर्पोरेट नेटवर्क प्रॉक्सी के लिए एक स्वचालित कॉन्फ़िगरेशन स्क्रिप्ट का भी उपयोग करता है (मुझे लगता है कि फिडलर उचित सिस्टम प्रॉक्सी के माध्यम से इसे सुरंग कर रहा था जिसके बारे में मेरा ऐप नहीं जानता था)

मेरी VB.net कार्यक्रम सभी मैं करना था प्रदर्शित करने के लिए किया गया था अनुरोध करने के लिए प्रॉक्सी सेटिंग जोड़ें: रिपोर्ट है कि वे मूल रूप से this-- फ़िडलर की तरह समस्याओं का सामना करते

Dim proxy = WebRequest.GetSystemWebProxy() 
oRequest.Proxy = proxy