c# - WCF 和 NetNamedPipeBinding - AVG 防病毒软件

标签 c# .net wcf netnamedpipebinding

我们一直有一些客户从 AVG Antivirus 收到有关我们应用程序的警告。

我们的应用程序在 C# 中使用 WCF 打开标准的 NetNamedPipeBinding,仅用于跨进程通信。

我们可以通过某种方式解决这个问题吗?我想知道我们是否需要设置一些东西来指示 WCF 服务仅在机器本地。

现在我们只需像这样在 C# 中设置绑定(bind):

        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”的地址来设置绑定(bind)。

我想告诉我们的客户,AVG 是一个垃圾——他们最好在软盘驱动器中放一个兔子脚,但我的良心不允许。

最佳答案

这比使用 WCF 稍微复杂一些,但您可以简单地使用 TcpClient 和 TcpListener(在 System.Net.Sockets 中),它们可用于打开实际的 TCP 端口并以这种方式通信(确保监听 IPAddress.Loopback,而不是 Any,否则您可能会收到防火墙警告)。这是跨平台的(Mono 和 .NET),而且似乎通常有效!

关于c# - WCF 和 NetNamedPipeBinding - AVG 防病毒软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340676/

相关文章:

c# - 如何使用参数制作链接按钮onclick

c# - 关于 C# 编译器如何发出 TypeRef 信息的问题

regex.replace() 中的 C# 多个模式

wcf - RestSharp 到 WCF 作为 JSON 日期格式化/序列化

c# - 键值依赖于值的键值对集合

c# - 构造函数中的 Xamarin 表单显示警报未显示?

c# - 将合约添加到接口(interface)实现

.net - System.Net.Mail.SmtpClient 是否使用 SSL、TLS、StartTLS 或组合?

c# - build DAL。使用 EDM(来自数据库)

wcf - 使用定位器管理全景页面中的多个 View - View 模型对