2010-03-18 6 views
12

मैं वर्तमान में एक डब्ल्यूसीएफ सेवा पर काम कर रहा हूं जो अपने कुछ संचालन में जानकारी जमा करने के लिए किसी अन्य सेवा तक पहुंचता है। दूसरी सेवा के लिए प्रॉक्सी दृढ़ता से टाइप की गई ProxyFactory<T> कक्षा के माध्यम से उत्पन्न होती है। मैं किसी भी मुद्दे का अनुभव नहीं है, लेकिन सुना है मैं की तरह कुछ करना चाहिए निम्नलिखित जब कॉल करने:मुझे डब्ल्यूसीएफ सेवा के अंदर ऑपरेशन कॉन्टेक्स्टस्कोप का उपयोग कब करना चाहिए?

using (new OperationContextScope((IContextChannel)_service)) 
    _service.Send(message); 

तो मेरे सवाल है: जब इस नए OperationContextScope उचित पैदा कर रही है, और क्यों?

धन्यवाद!

उत्तर

14

आप कॉलबैक का उपयोग कर रहे हैं या आप OperationContextScope उपयोग करने की आवश्यकता है, तो आप तो संदेश या हेडर संशोधित करने के लिए चाहते हैं। दूसरी सेवा को कॉल करते समय आपकी सेवा को आउटगोइंग हेडर संशोधित करने की आवश्यकता हो सकती है।

आप तो OperationContextScope की स्थापना जब आप कर सकते हैं:

  1. प्रवेश और इनकमिंग और आउटगोइंग संदेश हेडर और अन्य गुण संशोधित।
  2. प्रेषक, होस्ट, चैनल और एक्सटेंशन सहित रनटाइम तक पहुंचें।
  3. सुरक्षा, उदाहरण, और अनुरोध संदर्भ जैसे अन्य प्रकार के संदर्भों तक पहुंचें।
  4. पहुँच OperationContext वस्तु या (चैनल के लागू करता है System.ServiceModel.Channels.ISession) जुड़े चैनल के सत्र पहचानकर्ता के साथ जुड़े चैनल।

अन्य सेवा जिसे आप कॉल करते हैं, क्या यह सत्र-आधारित सेवा है? यदि आपको उपलब्ध हो तो शायद आपको इसके नमूना क्लाइंट कोड या दस्तावेज को देखना होगा।

+0

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

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