2011-09-07 36 views
4

我們不斷讓一些客戶從我們的應用程序中收到AVG Antivirus的警告。WCF和NetNamedPipeBinding - AVG Antivirus

我們的應用程序在C#中用WCF打開一個標準的NetNamedPipeBinding,僅用於跨進程通信。

這是我們可以在某種方式解決方法嗎?我想知道是否有一些我們需要設置,以表明WCF服務僅適用於本機。

現在我們只是設置了在C#像這樣綁定:

 var binding = new NetNamedPipeBinding(); 
     binding.MaxReceivedMessageSize = int.MaxValue; 
     binding.MaxReceivedMessageSize = int.MaxValue; 
     binding.ReaderQuotas = XmlDictionaryReaderQuotas.Max; 
     binding.ReceiveTimeout = TimeSpan.MaxValue; 

我沒有看到其他重要設置,我們只需要調用ServiceHost.AddServiceEndpoint包含「net.pipe地址://本地主機/ OurEndpoint「來設置綁定。

我想告訴我們的客戶,AVG是一件垃圾 - 他們最好把兔子的腳放在他們的軟盤驅動器中,但我的良心不會讓我。

回答

0

我們從未解決過這個問題,但堅持使用WCF。

我們還沒有遇到任何其他客戶機有這個問題。

+0

我不得不說,你不是AVG唯一的這個問題。事實上,現在我正在用HTTPBinding替換這種綁定,以避免這種錯誤,假設我們的標準WCF產品不受影響...儘管我也希望您可以選擇告訴客戶AVG是一件垃圾:) – Caveman

0

這比使用WCF稍微複雜一些,但你可以簡單地使用TcpClient和TcpListener(在System.Net.Sockets中),它可以用來打開一個實際的TCP端口並以這種方式進行通信(make確保在IPAddress.Loopback上監聽,而不是在任何情況下,否則您可能會收到防火牆警告)。這是跨平臺(Mono和.NET),並且似乎通常工作!