2009-10-06 7 views
5

मुझे अपने हाथों पर एक वास्तविक नींबू मिला है। मुझे उम्मीद है कि जिस व्यक्ति को एक ही समस्या है या उसे ठीक करने का तरीका पता है, वह मुझे सही दिशा में इंगित कर सकता है।डब्ल्यूसीएफ आपदा विफलता

सेटअप

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

नींबू

कुछ उपयोगकर्ता चयन परिवर्तन, यानी के बाद। के लिए बुला डेटा सेवा से अधिक निर्भर डेटा, एप्लिकेशन प्रतिक्रिया देने के लिए बंद हो जाता है।

Crash error:

The request channel timed out while waiting for a reply after 00:00:59.9989999. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.

मैं डिबगिंग प्रक्रिया को पुनः प्रारंभ लेकिन जब तक एक मिनट के बारे या तो, वी.एस. 08 प्रदर्शित करता है त्रुटि के साथ एक संदेश बॉक्स के बाद आवेदन किसी भी डेटा सेवा नहीं करेंगे कॉल:

Unable to process request from service. ' http://localhost:61768/ConsoleService.svc '. Catastrophic failure.

मैं इस त्रुटि से बाहर नरक Google पर गए और संबंधित मुद्दों पर लेकिन उपयोग के कुछ भी नहीं मिला।

संभव समाधान

मैं इस समस्या के स्रोत को लेकर कुछ सुराग मिल गया है। क्लाइंट के app.config में:

  1. maxReceivedMessageSize> उच्च मान पर सेट करें, उदाहरण के लिए। 5242880.
  2. प्राप्त टाइमआउट> एक उच्च मूल्य पर सेट करें, उदाहरण के लिए। 00:30:00

मैंने इन सभी की कोशिश की है लेकिन सभी व्यर्थ हैं। मुझे संदेह है कि एक अंतर्निहित समस्या है जिसे कुछ संख्याओं को बदलकर तय नहीं किया जा सकता है। किसी भी लीड की सराहना की जाएगी।

उत्तर

6

मैंने इसे हल किया है = पी।

कारण

WCF सेवा ठीक काम करता है। यह डेटा सेवा कॉल था जो अपराधी था। हर बार जब मैंने कॉल किया, तो मैंने डेटा सेवा के लिए एक नया संदर्भ तत्काल किया, लेकिन सेवा संदर्भ को कभी भी बंद/डिस्पोजेड नहीं किया। तो कुछ कॉल के बाद, डेटा सेवा अपने अधिकतम कनेक्शन और रुकावट तक पहुंच जाती है।

समाधान

किसी भी डेटा सेवा संदर्भ की/निपटाने ठीक से बंद करना सुनिश्चित करें। सर्वोत्तम अभ्यास एक उपयोग कथन में संलग्न होना होगा।

using(var dataService = new ServiceNS.ServiceClient()) 
{ 
    // Use service here   
} 
// The service will be disposed and connection freed. 
+0

संपत्ति के रूप में ग्राहक और async सेवा संदर्भ का उपयोग कर के साथ सिंगलटन पैटर्न मुद्दों पैदा करता है ??? –

4

आपको अपनी समस्या का समाधान करने के लिए खुशी हुई।

हालांकि, आपको उपयोग कथन का उपयोग करने के बारे में सावधान रहना होगा।इस लेख पर एक नज़र डालें:

http://msdn.microsoft.com/en-us/library/aa355056.aspx

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