मैंने ऐसी ऑब्जेक्ट को वापस करने की कोशिश करने में एक समस्या का सामना किया है जिसमें बाल तत्वों का संग्रह होता है जो फिर से पोते की वस्तुओं का संग्रह कर सकते हैं। मुझे एक त्रुटि मिलती है, 'मेजबान द्वारा जबरन बंद कनेक्शन'।डब्ल्यूसीएफ में जटिल डेटा प्रकार?
क्या यह काम करने का कोई तरीका है?
छद्म कोड:
Person:
IEnumerable<Order>
Order:
IEnumerable<OrderLine>
तीनों वस्तुओं DataContract विशेषता और सभी सार्वजनिक संपत्तियों मैं सामने प्रकट करना चाहते (IEnumerable के सहित) है DataMember विशेषता मैं वर्तमान में एक संरचना इस जैसी है।
मेरे पास मेरी सेवा पर एकाधिक ऑपरेशन कंट्रैक्ट है और एक ऑब्जेक्ट लौटने वाली सभी विधियां या ऑब्जेक्ट का एक आईनेमरेबल पूरी तरह से काम करता है। यह केवल तब होता है जब मैं IENumerable घोंसला करने की कोशिश करता हूं कि यह खराब हो जाता है। मेरे क्लाइंट सेवा संदर्भ में भी मैंने सामान्य संग्रह को मेरे संग्रह प्रकार के रूप में चुना है। मैं बस जोर देना चाहता हूं, केवल मेरे एक ऑपरेशन/विधियों में से एक इस त्रुटि के साथ विफल रहता है - उनमें से बाकी पूरी तरह से काम करते हैं।
संपादित करें (अधिक विस्तृत त्रुटि विवरण):
[SocketException (0x2746): An existing connection was forcibly closed by
the remote host]
[IOException: Unable to read data from the transport connection:
An existing connection was forcibly closed by the remote host.]
[WebException: The underlying connection was closed: An unexpected
error occurred on a receive.]
[CommunicationException: An error occurred while receiving the HTTP
response to http://myservice.mydomain.dk/MyService.svc. This could
be due to the service endpoint binding not using the HTTP protocol.
This could also be due to an HTTP request context being aborted by
the server (possibly due to the service shutting down). See server
logs for more details.]
मैं लॉग की तलाश करने की कोशिश की, लेकिन मैं किसी भी ... भी मैं एक WSHttpBinding और एक http endpoint उपयोग कर रहा हूँ नहीं मिल रहा।
क्या आपके ऑब्जेक्ट्स में कुछ ऐसा है जो सही ढंग से क्रमबद्ध नहीं है? –
मुझे नहीं पता। मैं शायद सोच रहा था कि एक नेस्टेड आईनंबरबल क्रमबद्ध नहीं हो सकता है? लेकिन मैं कैसे पता लगा सकता हूँ? मैं वास्तविक ऑपरेशन कंट्रैक्ट की वापसी के लिए सभी तरह से डीबग कर सकता हूं और सब कुछ ठीक है, लेकिन परिवहन गलत लगता है। मेरे पास कोई Serialize विशेषता नहीं है लेकिन इसके बजाय [डेटामेम्बर] –
का उपयोग करें, मुझे आपके जैसा ही त्रुटि हो रही है .. मेरी कक्षाएं enum गुणों के साथ भी परिभाषित हैं, लेकिन मैं इसे कहीं भी एक समस्या के रूप में नहीं देख रहा हूं .. enums ठीक होना चाहिए .. और डिफ़ॉल्ट मान सेट करके आपका क्या मतलब है? वे मूल्य प्रकार हैं इसलिए उनके पास हमेशा एक डिफ़ॉल्ट मान होता है।मैं enum गुण निकालने का प्रयास करें और देखते हैं कि अगर यह ठीक करता होगा .. यहाँ http://msdn.microsoft.com/en-us/library/ms731923.aspx समर्थित डेटा अनुबंध कक्षाओं के बारे में कुछ जानकारी –