2010-07-19 11 views
5

विंडोज 7 और .NET 4 पर मुझे डब्ल्यूसीएफ नामक पाइप ट्रांसपोर्ट से कुछ अजीब प्रभाव मिल रहे हैं जब मेरा डब्ल्यूसीएफ क्लाइंट विंडोज सेवा है।नामित पाइप डब्ल्यूसीएफ सेवा विंडोज सेवा क्लाइंट को क्यों अस्वीकार करती है?

मेरी डब्ल्यूसीएफ सेवा उपयोगकर्ता मोड ऐप में होस्ट की जाती है और नामित पाइप बाइंडिंग पर उजागर होती है।

मेरा डब्ल्यूसीएफ क्लाइंट एक विंडोज सेवा है, जो नेटवर्क सेवा के रूप में चल रहा है (यदि यह स्थानीय सिस्टम के रूप में चलता है तो मुझे वही परिणाम मिलता है)।

यदि मेरा उपयोगकर्ता मोड ऐप (यानी डब्ल्यूसीएफ सेवा) डोमेन व्यवस्थापक के रूप में चल रहा है तो यह ठीक काम करता है, लेकिन यदि उपयोगकर्ता मोड ऐप एक सामान्य उपयोगकर्ता (या स्थानीय व्यवस्थापक) है तो कनेक्शन को CommunicationObjectFaultedException के साथ अस्वीकार कर दिया जाता है।

मैंने यूएसी से जुड़े कुछ प्रश्न यहां शामिल किए हैं, लेकिन मैंने कहीं भी वास्तविक समाधान नहीं देखा है जो नामित पाइप परिवहन को सही तरीके से काम करता है। क्या यह सिर्फ एक अपरिहार्य ढांचा बग है?

+0

आंतरिक अपवाद क्या है? और, नहीं, यह ढांचे में एक बग नहीं है। – Will

उत्तर

4

ईसाई Weyer के ब्लॉग प्रविष्टि Dealing with OS privilege 'issues' in WCF Named Pipes scenarios से:

मेरे WCF सर्वर एक नाम पाइप आधारित एंडपॉइंट का उपयोग करके प्रक्रिया एक ग्लोबल गिरी वस्तु यह चुपचाप विफल रहता है बनाने के लिए विशेषाधिकार नहीं है, तो और एक स्थानीय एक बनाता है जो होगा अपने सत्र के बाहर प्रक्रियाओं के लिए दृश्यमान नहीं है।

इसलिए वैश्विक कर्नेल ऑब्जेक्ट बनाने के विशेषाधिकार के बिना किसी प्रक्रिया द्वारा खोला गया कोई पाइप आधारित संचार तंत्र (डब्ल्यूसीएफ या अन्यथा) कभी भी अपने सत्र के बाहर से संदेश प्राप्त करने में सक्षम नहीं होगा।

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

समस्या यह है कि यह एक विशेष रूप से असामान्य परिदृश्य नहीं है, .NET सेवा के लिए उपयोगकर्ता नोटिफिकेशन प्रदान करने के लिए .NET ट्रे ऐप से बात करना चाहते हैं। ट्रे ऐप से सर्विइड तक एक मतदान तंत्र काम करेगा ... लेकिन मतदान धीमा है और संसाधन गहन है और मैं इसे टालना चाहता हूं।

कोई भी बेहतर कस्टम आईपीसी परिवहन के बारे में जानता है?

टिम

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