c# - WCF: Using Duplex for notifications across multiple instances of the same WCF service -


एक WCF सेवा ( SoapClient वर्ग) पर क्लिक करें।

मुझे ऐसा करने की आवश्यकता है क्योंकि मुझे कॉलबैक के साथ द्वैध संचार को सक्षम करने की आवश्यकता है, इसलिए मुझे "एप्लिकेशन को पंजीकृत" करने की आवश्यकता है यह सेवा इसलिए है कि जब कोई नया उपयोगकर्ता लॉग इन करता है तो आवेदन का उपयोग करने वाले अन्य उपयोगकर्ताओं को सूचित किया जाएगा।


नीचे बीटीड स्ट्राइक किया गया है क्योंकि मैंने पुष्टि की है कि सूचनाओं को काम करने के लिए, रजिस्ट्रार को उसी wcf सेवा आवृत्ति में पंजीकरण करना होगा ... इस प्रकार अब मुझे इस उदाहरण को साझा करने के लिए एक तरीका चाहिए

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

मैंने WCF डुप्लेक्स चीज़ का उपयोग करने की कोशिश की है, लेकिन और मैं इसे काम नहीं कर सकता ... और मुझे लगता है इसके पीछे है एबीयू से सूचनाओं और सदस्यता को WCF सेवा के एक ही उदाहरण में होने की आवश्यकता होती है।

लेकिन जब से यह एप्लिकेशन एकाधिक उपयोगकर्ताओं के पीसी पर तैनात किया जाएगा, मैं इस wcf सेवा का केवल एक उदाहरण साझा नहीं कर सकता हूं? (या मैं?)

क्या सभी उपयोगकर्ताओं के लिए डब्ल्यूसीएफ सेवा ( SoapClient ) का एक आम उदाहरण साझा करने का कोई तरीका है? या क्या मैं इसके बारे में गलत तरीके से जा रहा हूं?

वर्तमान में मैं एक सार्वजनिक पुस्तकालय के माध्यम से डब्लसीसीसी सेवा को एक्सेस कर रहा हूं जो हर बार जब इसे पहुँचा जाता है तो डब्लूसीएफ सेवा की एक नई संख्या भेजता है, और मैं लगता है कि यह कारण है कि अधिसूचनाएं आवेदन के कई उदाहरणों पर क्यों काम नहीं कर रही हैं।


निम्नलिखित तरीकों (कक्षा पुस्तकालय में) हैं जो क्लाइंट अनुप्रयोग (एक डब्ल्यूपीएफ एप) सेवा विधियों तक पहुंच प्राप्त करने के लिए उपयोग करता है:

  सार्वजनिक स्थिर MusicRepo_DBAccess_ServiceClient GetService (ऑब्जेक्ट इंस्टीटेंसकॉन्टेक्स) {नई MusicRepo_DBAccess_ServiceClient (नई InstanceContext (instanceContext), दोहरी बाध्यकारी, एंडपॉइंटएड्रेस); } सार्वजनिक स्थिर MusicRepo_DBAccess_ServiceClient GetService () {नई MusicRepo_DBAccess_ServiceClient (नई InstanceContext (नई WSGateway ()), दोहरे बाध्यकारी, समापन बिंदु पते पर लौटें; }  

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

इसी तरह मैं सेवा लॉगिन पद्धति में रजिस्ट्रार (अंश) को सूचित कर रहा हूं :

  यदि (! _callbackList.Contains (नया उपयोगकर्ता)) {_callbackList.Add (newUser); } _callbackList.ForEach (c = & gt; c.NotifyNewUserOnline (लॉग इनयूजर));  

समाधान सरल था मुझे केवल InstanceContextMode से सिंगल :

  [ServiceBehavior (InstanceContextMode = InstanceContextMode.Single)) को बदलना था।   

Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -