2009-11-03 14 views
5

के लिए कनेक्टेड क्लाइंट की एक सूची प्राप्त करना मैं किसी सेवाहोस्ट के लिए सभी कनेक्टेड क्लाइंट्स के लिए किसी प्रकार का स्थान पहचानकर्ता कैसे समझा सकता हूं? मैं लंबे समय तक चलने वाली गणनाओं के लिए डुप्लेक्स कनेक्शन का उपयोग कर रहा हूं। सेवा होस्ट एक सिंगलटन है।एक डब्ल्यूसीएफ सेवा

मैं कॉलिंग क्लाइंट के आईपी (.net 3.5) को समझ सकता हूं लेकिन मुझे यकीन है कि सभी कनेक्टेड क्लाइंट्स के आईपी को कैसे प्राप्त किया जाए।

उत्तर

1

मैं वहाँ में निर्मित है कि के लिए कुछ भी नहीं है नहीं लगता है, लेकिन यह काफी एक ट्रैकिंग IServiceBehavior + IDispatchMessageInspector निर्माण करने के लिए है कि RemoteClientEnpointMessageProperty निरीक्षण से पहले फोन सेवा impl भेजा जाता है और ग्राहक छड़ी आईपी आसान हो जाएगा एक साझा सूची में, और कॉल/सत्र समाप्त होने पर इसे हटा दें।

2

डिफ़ॉल्ट रूप से, डब्ल्यूसीएफ "प्रति-कॉल" सेवाओं के उपयोग को बढ़ावा देता है, उदा। आपका ग्राहक कॉल करता है, अनुरोध संभाला जाता है, और उसके बाद ग्राहक तुरंत फिर से डिस्कनेक्ट हो जाता है।

डब्ल्यूसीएफ अपने आप को बहुत अच्छी तरह से उधार नहीं देता है और लंबे समय से चलने वाले कनेक्शनों के लिए इसका इरादा नहीं है - इसलिए आप वास्तव में "वर्तमान में जुड़े उपयोगकर्ताओं को गणना नहीं कर सकते" क्योंकि कोई भी नहीं है (या केवल एक अंश के लिए एक पल)।

डब्ल्यूसीएफ एक विंडोज डोमेन सर्वर की तरह नहीं है जहां आप लॉग इन करते हैं और एक विस्तृत अवधि के लिए लॉग इन रहते हैं।

+0

क्षमा करें मैं अपनी पोस्ट में स्पष्ट नहीं था लेकिन मैं डिफ़ॉल्ट सेवा व्यवहार का उपयोग नहीं कर रहा हूं। [सेवा व्यवहारकर्ता (InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] InstanceContexMode.Single के साथ डिफ़ॉल्ट "प्रति-कॉल" मोड की तुलना में लंबे जीवनकाल के साथ एक उदाहरण है। लागू की गई सेवा वर्तमान में कॉलबैक अनुबंध का उपयोग करती है जब वे तैयार होते हैं तो परिणाम भेजते हैं। क्लाइंट सर्वर के साथ इसका कनेक्शन कैश करता है ताकि उन्हें एकाधिक अनुरोधों के लिए उपयोग किया जा सके। कनेक्शन लंबे समय से चल रहे हैं। – Sindhudweep

+0

ठीक है - मुझे नहीं लगता कि यह एक बहुत अच्छा विचार है, लेकिन मुझे आपके सेटअप के विवरण नहीं पता हैं; दुर्भाग्यवश, डब्ल्यूसीएफ 3.5 में, प्रबंधन और निगरानी के लिए बहुत सारे समर्थन नहीं हैं - यह "डबलिन" परियोजना का हिस्सा होगा - आईआईएस 7/डब्ल्यूएएस के लिए एक प्रबंधन एड-ऑन .NET 4 (मार्च 2010) के बाद कुछ समय शिप करने के लिए निर्धारित है।)। –

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