2009-08-27 12 views
9

में समस्या का समय मुझे डब्ल्यूसीएफ में समय निकाल रहा है।डब्ल्यूसीएफ

निम्न त्रुटि है:

{ "जबकि 00 के बाद एक जवाब का इंतजार कर अनुरोध चैनल का समय समाप्त हो: 00:। ५९.९८४३७४४ अनुरोध करने के लिए कॉल को दिया गया टाइमआउट मान बढ़ाएँ या पर SendTimeout मूल्य में वृद्धि बाइंडिंग। समय इस आपरेशन के लिए आवंटित एक लंबे समय तक समय समाप्ति के एक हिस्से को हो सकता है। "}

गूगल में खोज के बाद, मैं इस साइट से समाधान

पाया

http://social.msdn.microsoft.com/Forums/en-US/peertopeer/thread/38306972-3128-4f0c-937b-5d162d4d8e74

तो मैं तदनुसार मेरी app.config फ़ाइल

<behavior name="ContactServiceBehaviour"> 
    <serviceMetadata httpGetEnabled="true" /> 
    <dataContractSerializer maxItemsInObjectGraph="1000000000"/> 
    <serviceDebug includeExceptionDetailInFaults="true" /> 
    <serviceThrottling maxConcurrentCalls="100" 
         maxConcurrentSessions="100" 
         maxConcurrentInstances="100"/> 
</behavior> 

समाधान क्या है बदला?

+1

हाय, आपने यहां जाने के लिए बहुत कुछ नहीं दिया है। क्या आप सेवा की मेजबानी कर रहे हैं? या आप डब्ल्यूसीएफ क्लाइंट चला रहे हैं? –

उत्तर

18

आपके द्वारा उल्लेख किया गया फ़ोरम पोस्ट एक लाल हेरिंग है। त्रुटि संदेश स्पष्ट रूप से बताता है कि आपको डब्ल्यूसीएफ क्लाइंट और सेवा में टाइमआउट संपत्ति बढ़ाने की आवश्यकता है। (यदि आप इसे सेवा में बदलते हैं तो मुझे पता चला है कि इसे अद्यतन होने पर ग्राहक द्वारा हमेशा उठाया नहीं जाता है)

विजुअल स्टूडियो में टूल्स मेनू, वहां आपको 'डब्ल्यूसीएफ सेवा कॉन्फ़िगरेशन संपादक' '। अपनी परियोजनाओं को web.config लोड करें और अपनी सेवा के लिए एक नया बाध्यकारी परिभाषित करें।

बदलने की सेटिंग SendTimeout मान है। यह डिफ़ॉल्ट रूप से 60 सेकंड है।

<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
    <binding name="WCFBinding" sendTimeout="00:02:00"> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
+1

लगता है जैसे आप डब्ल्यूसीएफ के लिए काफी नए हैं। http://msdn.microsoft.com/en-us/library/ms731067.aspx कुछ महान ट्यूटोरियल के लिए –

+1

टाइमआउट त्रुटियों को टाइमआउट बढ़ाने से लगभग कभी हल नहीं किया जाता है। वे आमतौर पर कारण होते हैं क्योंकि क्लाइंट सर्वर से कनेक्ट करने में असमर्थ है। टाइमआउट केवल मौजूद है ताकि आप छोड़ने से पहले घंटे या दिन इंतजार न करें। –

+1

यदि यह ग्राहक लंबे समय तक चलने वाले कार्य पर प्रतीक्षा कर रहा है, तो 60 सेकंड विशेष रूप से लंबा नहीं है। और सबसे आसान फिक्स की संभावना है। –

0

आप टाइमआउट हैंडल करना चाहते हैं, तो आप एक आज़माएं/कैच ब्लॉक में WCF सेवा के ग्राहक के पक्ष कॉल लपेट कर सकते हैं।

यदि आपके पास डीबगर संलग्न नहीं है, तो एक टाइमआउट कैच ब्लॉक को निष्पादित करने का कारण बनता है। हालांकि, अगर आपके पास डीबगर संलग्न है, तो डीबगर कैच ब्लॉक तक पहुंचने से पहले त्रुटि को रोकता है।