4

We keep having some customers getting a warning from AVG Antivirus about our application.

Our application opens a standard NetNamedPipeBinding with WCF in C#, just for cross-process communication.

Is this something we can workaround in some way? I'm wondering if there is something we need to set to indicate the WCF service is local to the machine only.

Right now we just setup the binding in C# like so:

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

I don't see other settings of importance, we just call ServiceHost.AddServiceEndpoint with an address like "net.pipe://localhost/OurEndpoint" to set the binding.

I would like to tell our customers that AVG is a piece of junk--they'd be better off putting a rabbit's foot in their floppy drive, but my conscience won't let me.

jonathanpeppers
  • 26,115
  • 21
  • 99
  • 182

2 Answers2

0

This is a bit more complex than using WCF, but you could simply use a TcpClient and a TcpListener (in System.Net.Sockets), which could be used to open up an actual TCP port and communicate that way (make sure to listen on IPAddress.Loopback, not Any, or you might get a firewall warning). This is cross-platform (Mono and .NET), and seems to usually work!

bbosak
  • 5,353
  • 7
  • 42
  • 60
0

We never solved this issue, but stuck with WCF.

We haven't run into any other client machines with this problem.

jonathanpeppers
  • 26,115
  • 21
  • 99
  • 182
  • I have to say that you're not the only one with this issue with AVG. In fact, now I'm replacing that kind of binding with a HTTPBinding, to avoid that error, assuming that our standard WCF products are not affected... Although I would prefer too your alternative of telling the customers that AVG is a piece of junk :) – Morcilla de Arroz Nov 05 '14 at 09:10