WCF и NetNamedPipeBinding - антивирус AVG - PullRequest
4 голосов
/ 08 сентября 2011

Некоторые клиенты получают предупреждение от AVG Antivirus о нашем приложении.

Наше приложение открывает стандартную привязку NetNamedPipeBinding с WCF в C # только для межпроцессного взаимодействия.

Это то, что мы можем каким-то образом обойти? Мне интересно, есть ли что-то, что нам нужно установить, чтобы указать, что служба 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: // localhost / OurEndpoint", чтобы установить привязку.

Я хотел бы сказать нашим клиентам, что AVG - это чушь - им лучше положить кроличью лапку в дисковод, но моя совесть не позволит мне.

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Мы никогда не решали эту проблему, но застряли с WCF.

Мы не сталкивались с другими клиентскими машинами с этой проблемой.

0 голосов
/ 30 ноября 2011

Это немного сложнее, чем использование WCF, но вы можете просто использовать TcpClient и TcpListener (в System.Net.Sockets), которые можно использовать для открытия реального порта TCP и обмена данными таким образом (убедитесь, прослушивать IPAddress.Loopback, а не Any, или вы можете получить предупреждение брандмауэра). Это кроссплатформенный (Mono и .NET), и, кажется, обычно работает!

...