हमारे पास एक .NET प्रोग्राम है जो किसी अन्य प्रक्रिया से संचार सुनने के लिए डब्ल्यूसीएफ का उपयोग करता है। हमने नामित पाइप का इस्तेमाल किया।नामित पाइप्स संघर्ष को रोकें
ServiceHost host = new ServiceHost(
typeof(Something),
new Uri[]
{
new Uri("net.pipe://localhost")
});
host.AddServiceEndpoint(typeof(ISomething), new NetNamedPipeBinding(), "Something");
host.Open();
कोड तीसरे पक्ष तक महान काम करता था .NET प्रोग्राम स्थापित किया गया था। अब खुला "पाइप नाम पर नहीं सुन सकता" net.pipe: // localhost/'के संदेश के साथ खुला रहता है क्योंकि एक और पाइप एंडपॉइंट पहले से ही उस नाम पर सुन रहा है। "
मेरी धारणा यह है कि दूसरा प्रोग्राम पहले ही नामित पाइप का उपयोग कर रहा है। क्या कोई कामकाज है या कंप्यूटर के उपयोग पर केवल एक प्रोग्राम पाइप नामित किया जा सकता है? मुझे अन्य प्रश्नों से छाप मिलती है कि आप पाइप के लिए "नाम" सेट कर सकते हैं, इसलिए यह अन्य प्रक्रियाओं के साथ संघर्ष नहीं करता है, आप यह कैसे करते हैं?
वर्तमान में आपके नामित पाइप का उपयोग कर कौन सा एप्लिकेशन उपयोग कर रहा है यह जानने के लिए [SysInternals] (http://technet.microsoft.com/en-us/sysinternals/default.aspx) से हैंडल.एक्सई का उपयोग कर सकते हैं। कमांड "हैंडल.एक्सई नेटपाइप:"। देखें [रॉडनी वियाना की पोस्ट] (http://blogs.msdn.com/b/rodneyviana/archive/2011/03/22/named-pipes-in-wcf-are-named-but-not-by-you-and -how-to-find-the-actual-windows-object-name.aspx) – mcdon