Başka bir işlemden iletişim dinlemek için WCF kullanan bir .NET programımız var. Adlandırılmış borular kullandık.Adlandırılmış Boruları Önleyin Çakışma
ServiceHost host = new ServiceHost(
typeof(Something),
new Uri[]
{
new Uri("net.pipe://localhost")
});
host.AddServiceEndpoint(typeof(ISomething), new NetNamedPipeBinding(), "Something");
host.Open();
Üçüncü taraf .NET programı kuruluncaya kadar kod harika çalıştı. Şimdi açık, "Başka bir boru uç noktası zaten bu adı dinlediğinden," boru adında dinleyemiyor 'net.pipe: // localhost /' mesajıyla başarısız oluyor.
Benim varsayımım, diğer programın zaten adlandırılmış yöneltme kullandığıdır. Bir geçici çözüm var mı yoksa bir bilgisayarda yalnızca bir program adlandırılmış yöneltmeler kullanabilir mi? Diğer sorulardan bir boru için bir "isim" belirleyebilmeniz için izlenim edindim, bu yüzden diğer süreçlerle çakışmıyor, bunu nasıl yapıyorsunuz?
Şu an kullandığınız boruyu kullanarak hangi uygulamanın kullanıldığını öğrenmek için Handle.exe dosyasını [SysInternals] (http://technet.microsoft.com/en-us/sysinternals/default.aspx) adresinden kullanabilir. "Handle.exe net.pipe:" komutunu verin. [Rodney Viana'nın yazısı] 'na bakın. (Http://blogs.msdn.com/b/rodneyviana/archive/2011/03/22/named-pipes-in-wcf-are-named-but-not-by-you-and -en-bulmak-gerçek-windows-object-name.aspx) – mcdon