2011-09-07 63 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),并且似乎通常工作!