2012-06-21 31 views
6

आईआईएस 7.5 का उपयोग करके मेरी कंपनी में बस मेरी डब्ल्यूसीएफ सेवा को सर्वर पर तैनात किया गया है और सब ठीक काम करने लगता है। लेकिन जब मैं अपना क्लाइंट एप्लिकेशन सेट अप करता हूं और सर्वर के लिए सर्वर संदर्भ जोड़ता हूं और फिर इस कोड का उपयोग करता हूं।डब्ल्यूसीएफ सेवा क्लाइंट एप्लिकेशन "ऑब्जेक्ट किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है"

ServerReference.ServiceClient client = new ServerReference.ServiceClient(); 

var s = client.GetBrand("Audi", false); 

मुझे एक अपवाद मिलता है जो कहता है "वस्तु संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है"। एस ऑब्जेक्ट बी नल नहीं होना चाहिए (हमने लोकलहोस्ट पर सेवा की कोशिश की जहां हमारे पास उसी परियोजना में था जहां यह काम करता था)।

आपने स्टैकस्ट्रेस को देखा और ऐसा लगता है।

21.6.2012 16:16:29 

ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है।

Server stack trace: 
    at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) 
    at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) 
    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 

कोई सुझाव ?? पी.एस. सीपीयू जहां डब्ल्यूसीएफ सेवा की मेजबानी की गई है, इसमें विजुअल स्टूडियो नहीं हैं इसलिए मैं इसे

+2

क्या [WcfTestClient] (http://msdn.microsoft.com/en-us/library/bb552364.aspx) होस्ट की गई सेवा पर काम करता है? यह देखने के लिए इसे संक्षिप्त करें कि यह आपका कार्यान्वयन है, या सेवा शुरू करने में विफल रही है।अनुबंध भी बदल सकता है जो (जब आप पिछली बार मेटाडाटा प्राप्त करते हैं) निर्भर करता है कि सेवा तत्काल विफल हो सकती है। –

उत्तर

2

जैसा कि मैंने टिप्पणी में सुझाव दिया है, सुनिश्चित करें कि आप WcfTestClient का उपयोग कर डेटा प्राप्त कर सकते हैं। यह दोनों पुष्टि करता है कि सेवा काम कर रही है, और लगभग क्लाइंट परिप्रेक्ष्य से काम कर रहे यह सुनिश्चित करने के लिए विधि कॉल का यूनिट-परीक्षण करता है।

दूसरा, (जब तक आप इसे एसओ पर पोस्ट करने के लिए पानी नहीं देते) correct WCF call method का उपयोग इस प्रकार की समस्याओं से बचने के लिए करें। एक बार जब आप निर्भरता पेश कर लेते हैं तो असफलताओं की अपेक्षा करना हमेशा अच्छा विचार होता है (यद्यपि आपकी सेवा, ग्राहक का इंटरनेट कनेक्शन, या अन्यथा)।

अपनी परियोजना के बारे में कुछ और जानने के बिना इसे ठीक करने का वर्णन करना मुश्किल है। पुराने डब्लूएसडीएल जैसे कारक, गलत कॉन्फ़िगर किए गए * .config, सर्वर पर अप्रत्याशित अंतराल, और अन्य समस्याएं समस्या की जड़ हो सकती हैं लेकिन जो आपने दिखाया है उसे देखते हुए मुझे नहीं पता कि यह कौन सा हो सकता है।

यदि आप अधिक जानकारी प्रदान कर सकते हैं तो मुझे अपने उत्तर को और अधिक सलाह के साथ अपडेट करने में खुशी होगी। अभी के लिए, सर्वर पर enabling WCF tracing पर एक नज़र डालें ताकि आप लॉग के माध्यम से वापस देख सकें और देख सकें कि क्या सर्वर के अंत में कुछ भी है (आपके ग्राहक के कॉल और जांच के माध्यम से कदम उठाने के अलावा)।

+0

डब्लूसीएफ ट्रेसिंग वर्तमान में अभी काम कर रही है (बिल्कुल समझ में नहीं आती है) ... मेरे अनुसार शोध आज बाध्यकारी के साथ कुछ है। एक बात जो मैं नोटिस करता हूं और दिलचस्प बात करता हूं वह यह है कि जब मैं एक परीक्षण क्लाइंट का उपयोग कर रहा हूं और स्थानीयहोस्ट पर सेवा को कॉल करता हूं और मैं इसे एक शून्य पैरामीटर के साथ कॉल करता हूं तो यह आईआईएस होस्टेड सेवा (प्रत्येक पैरामीटर के साथ) के समान त्रुटि देता है। क्या यह विचार करने के लिए कुछ है, p.s वहाँ कुछ और है जो आप चाहते हैं कि मैं बेहतर – user1279173

1

आपको इसके माध्यम से डीबग करने की आवश्यकता नहीं है। बस web.config में डब्ल्यूसीएफ ट्रेसिंग सेटअप जोड़ें और आप मूल त्रुटि के बारे में जानकारी प्राप्त कर सकते हैं। देखें http://msdn.microsoft.com/en-us/library/ms733025.aspx

+0

को समझने के लिए यहां पोस्ट करूं और कोड को कॉपी कर दूं और मेरे वेबकॉन्फ में डाल दिया, और कुछ भी नहीं हुआ। कोई फ़ाइल नहीं बनाई गई थी या उस तरह की चीज – user1279173

+0

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

0

मुझे मेरी परियोजना में एक ही समस्या है, मेरे मामले में मुझे पता चला कि सेवा निर्माता में अपवाद हुआ है, लेकिन जब मैं किसी भी विधि को कॉल करता हूं तो यह केवल ट्रिगर होता है।

0

निशान निकालने और ट्रेस स्तर सेट करने के लिए ट्रेस स्रोतों को कॉन्फ़िगर करें, एंड-टू-एंड ट्रेस सहसंबंध का समर्थन करने के लिए गतिविधि ट्रेसिंग और प्रचार सेट करें, और ट्रेस श्रोताओं को निशान तक पहुंचने के लिए सेट करें।

विंडोज संचार फाउंडेशन (डब्ल्यूसीएफ) डायग्नोस्टिक ट्रेसिंग के लिए निम्नलिखित डेटा आउटपुट करता है: ऑपरेशन कॉल, कोड अपवाद, चेतावनियां और अन्य महत्वपूर्ण प्रसंस्करण घटनाओं जैसे अनुप्रयोगों के सभी घटकों में प्रक्रिया मील के पत्थर के लिए निशान। ट्रेसिंग सुविधा malfunctions जब विंडोज त्रुटि घटनाओं। Event Logging in WCF देखें।