2012-12-10 11 views
5

के कारण का पता कैसे लगाएं मुझे MyServiceBase क्लास सर्विसबेस से प्राप्त हुआ है। MyService के अंदर मुझे अपनी डब्ल्यूसीएफ-सेवा के लिए सर्विसहोस्ट मिला है, जिसमें IsOneWay = true property के साथ केवल एक ही विधि है। मैं इसे प्रारंभ करने के लिए इस कोड का प्रयोग किया:सर्विसहोस्ट फॉल्टेड इवेंट

host = new ServiceHost(typeof(MyService)); 
host.Opened += new EventHandler(host_Opened); 
host.Closed += new EventHandler(host_Closed); 
host.Faulted += new EventHandler(host_Faulted); 
host.UnknownMessageReceived += new EventHandler<UnknownMessageReceivedEventArgs>(host_UnknownMessageReceived); 
host.Open(); 

कभी कभी मेजबान गलती घटना को जन्म देती है, लेकिन में * host_Faulted * विधि EventArgs हमेशा रिक्त हैं, इसलिए मैं बाहर यह कारण नहीं मिल रहा। कृपया मदद करें। संबंध में धन्यवाद।

+0

मैंने छद्मविराम (http://msdn.microsoft.com/en-us/library/ms164891.aspx) का उपयोग करने का प्रयास किया है, लेकिन मुझे स्थानीय विंडो – Alekstim

उत्तर

2

यह लिंक WCF दोष से निपटने और डिबगिंग के बेहतर तरीकों के लिए उपयोगी साबित हो सकता:

How do I prevent a WCF service from enter a faulted state?

तो बजाय अपने विशिष्ट सवाल का जवाब, मैं आपकी आवश्यकता को प्राप्त करने का एक बेहतर तरीका की सिफारिश कर रहा हूँ।

+0

धन्यवाद में $ अपवाद चर दिखाई नहीं दिया। इस लिंक ने मुझे बहुत मदद की – Alekstim

+0

कोई समस्या नहीं है। खुशी है कि मेरे सुझाव आपके लिए काम किया। – c0D3l0g1c

+3

यह सहायक है लेकिन वास्तविक प्रश्न का उत्तर नहीं दिया। किसी को अपवाद स्टैक कैसे मिलता है जिससे सेवा गलती हो जाती है? – David

0

आज मैं इस समस्या से मुलाकात की। डब्ल्यूसीएफ ट्रेसिंग को सक्षम करके, यह मदद करता है, लेकिन मुझे कारण नहीं दिया। बहुत सारे डिबगिंग काम के बाद, मुझे असली कारण मिला: क्लाइंट जो डब्ल्यूसीएफ सेवाओं का उपभोग करता है दुर्घटनाग्रस्त हो जाता है। चूंकि ग्राहक एक लिपटे विंडोज सेवा है, और इसकी स्थिति अभी भी 'चल रही है'।

तो मेरा सुझाव है: अपने क्लाइंट एप्लिकेशन में सभी कोड ब्लॉक को आजमाएं/पकड़ें।

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