2012-01-23 20 views
5

के बीच संवाद कैसे करें मेरे पास 2 विंडो सेवाएं हैं जिन्हें मैंने सी # का उपयोग करके बनाया है।विंडोज सेवा

मैं दूसरी विंडोज सेवा में एक समारोह को कॉल करने के लिए सेवाओं में से एक चाहता हूं।

मुझे यह कैसे करना चाहिए?

संपादित करें:

मुद्दा है मुझे लगता है कि चल रहा है (मैं उन्हें होने के लिए बल्कि सेवा प्रक्रिया भी अच्छा है की जरूरत नहीं है) आवेदन करने के लिए है कि लेकिन मैं संवाद करने के लिए यह 2 आवेदन की जरूरत है यह 2 आवेदन एक ही सर्वर पर हैं,

+0

क्रॉस-ऐप संचार के लिए [संबंधित पोस्ट] (http://stackoverflow.com/a/86286/175679) देखें। – SliverNinja

+1

किस तरह का डेटा? कितने संदेश? औसत संदेश आकार क्या है? – sll

उत्तर

3

निश्चित रूप से। आईपीसी तंत्र का एक गुच्छा आप उपयोग कर सकते हैं। रिमोटिंग, टीसीपी/HTTP श्रोताओं, आदि

क्या कोई सेवा ऐसी कार्यक्षमता प्रदान करती है जो अन्य सेवा के बाहर उपयोगी हो सकती है?

अधिक विचारों के लिए इस सूत्र देखें: IPC Mechanisms in C# - Usage and Best Practices

संपादित करें: के रूप में डेविड Piras ने कहा, अगर WCF उपलब्ध है आप का उपयोग करने के लिए है, तो यह प्रयोग करने पर विचार। यह जीवन को सरल बना देगा। डब्ल्यूसीएफ कॉन्फ़िगरेशन फ़ाइलों को कभी-कभी दर्द होता है, लेकिन इसके लिए एक अच्छा टूल भी है: http://msdn.microsoft.com/en-us/library/ms732009.aspx

+2

डब्ल्यूसीएफ के पक्ष में जब भी संभव रिमोटिंग और HTTP से बचा जाना चाहिए –

2

क्या एक ही बॉक्स में सेवाएं हैं? क्या आपके पास .NET 4 है? सबसे तेज़ मोड का उपयोग करने की अत्यधिक अनुशंसा करें, memory-mapped files

यदि वे एक ही बॉक्स पर हैं, लेकिन आपके पास .NET 4 नहीं है, या एक समरूप माइक्रोसॉफ्ट विंडोज नेटवर्क में हैं, named pipes काम कर सकता है। अधिक बिंदु पर, मैं WCF over a named pipe का उपयोग करूंगा।

4

मुझे अन्य सभी उत्तरों को सही मिला लेकिन थोड़ा बहुत जटिल (डब्ल्यूसीएफ एक बड़ा सौदा है) और स्केलेबल नहीं है (स्मृति और नामित पाइप केवल एक ही सेवर पर काम करेंगे)। मैं आपको DotNetMQ संदेश प्रणाली का सुझाव देता हूं। इसका उपयोग करना और तैनाती करना आसान है और चलिए आप विभिन्न सर्वरों पर चल रही प्रक्रियाओं के बीच भी संवाद करते हैं।