मेरे पास एक बहुत अजीब स्थिति है।एसएसआईएस पैकेज पर यूरी और वेब क्लाइंट कक्षाओं के साथ अजीब व्यवहार
- टास्क "सूची प्राप्त" एक स्तंभ और यूआरएल की सूची के साथ एक विधानसभा से एक डेटा तालिका को पुन: प्राप्त एक वस्तु चर में भाग जाना चाहिए:
मैं इस बहुत ही सरल पैकेज है ।
- "foreach" पाश वस्तु चर के माध्यम से लूप और एक यूआरएल स्ट्रिंग चर
"रन" में यूआरएल को लोड करता है, यूआरएल इस कोड (अपने 2005 तो इम वीबी के साथ फंस) के साथ कहता है:
Dim myURI As New Uri("http://" + Dts.Variables("URL").Value.ToString()) Dim myWebClient As New System.Net.WebClient myWebClient.OpenReadAsync(myURI)
यूआरएल बुलाया जा रहा है आंतरिक है और सिर्फ पैरामीटर को पहचान लेगा और ऑपरेशन जो कुछ समय लगेगा की एक श्रृंखला प्रदर्शन करती है, यही कारण है कि मैं "OpenReadAsync" का इस्तेमाल किया है
मेरी समस्या यह है: यदि मेरे पास चलाने के लिए 4 यूआरएल हैं, तो पैकेज केवल उनमें से 2 चलाता है। लूप 4 गुना हो जाता है, स्क्रिप्ट को 4 बार कहा जाता है (मैं देख सकता हूं कि मैं इसे डीबग करता हूं), लाइन myWebClient.OpenReadAsync(myURI)
4 अलग-अलग मानों के साथ 4 बार निष्पादित की जाती है, लेकिन यूआरएल में केवल 2 कॉल किए जाते हैं।
यदि मैं पैकेज को फिर से चलाता हूं, तो अन्य 2 यूआरएल अब कॉल किए जाते हैं, जो प्रमाण है कि यूआरएल के साथ कुछ भी गलत नहीं है और यदि मैं ब्राउज़र पर मैन्युअल रूप से 4 यूआरएल कॉल करता हूं (उदाहरण के लिए 4 टैब पर) एक के ठीक बाद, वे सभी अपेक्षित परिणाम उत्पन्न करते हैं, जो प्रमाण है कि यूआरएल को पार करने वाले कोड के साथ कुछ भी गलत नहीं है।
तो मुझे वीबी कोड के साथ छोड़ दिया गया है, यह पहली बार आईरी और वेब क्लाइंट का उपयोग कर रहा है, इसलिए मुझे आश्चर्य है कि मैं कुछ गलत कर रहा हूं। मैंने कॉल के बीच 5 सेकंड की नींद जोड़ने की भी कोशिश की, लेकिन कोई भाग्य नहीं।
किसी भी मदद की सराहना की जाएगी। धन्यवाद
क्या होगा यदि आप के लिए स्विच सिंक्रोनस OpenRead विधि का उपयोग कर? – billinkc
हाय बिलिंकक! मुझे दूसरे रन के बाद टाइमआउट मिलता है। यह अजीब है क्योंकि मुझे 4 यूआरएल कुछ सेकंड में चलाना चाहिए, असल में मैं देख सकता हूं (मेरे पास एक लॉग है) कि दूसरा वाला पहला 5 सेकंड बाद चला। और यदि मैं दूसरी बार पैकेज चलाता हूं, तो 2 शेष यूआरएल ठीक चलते हैं, इसलिए निश्चित रूप से कोड को 2 बार – Diego
से अधिक कोड करने के तथ्य के साथ कुछ भी जब भी मैं एसएसआईएस में "अजीब" कोड मुद्दों में भाग लेता हूं, तो मैं कोड को डंप करता हूं एक .NET कंसोल ऐप पर जाएं और देखें कि क्या मैं वहां व्यवहार को पुन: उत्पन्न कर सकता हूं। मुझे लगता है कि आप पहले से ही कोशिश कर चुके हैं, लेकिन यदि आपके पास नहीं है, तो यह देखने के लिए एक जगह हो सकती है क्योंकि आपके बक्षीस के लिए बहुत प्यार नहीं हुआ है। इसके अलावा, आपका पूरा कोड कैसा दिखता है? कोई भी मौका कि सभी 4 यूआरएल बुलाए जा रहे हैं, लेकिन चूंकि वे एसिंक कॉल हैं, तो आप बाद में प्रभावों का पालन नहीं करते हैं? क्या होगा यदि आप लंबे थ्रेड डालते हैं। वहां सो जाओ, अपेक्षित प्रक्रिया अवधि से मेल खाने के लिए कुछ? एसिंक का उद्देश्य हराता है, मुझे पता है लेकिन कुछ प्रकाश – billinkc