4

当社のアプリケーションについて、AVG アンチウイルスから警告を受けているお客様がいます。

このアプリケーションは、クロスプロセス通信のためだけに、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://localhost/OurEndpoint」のようなアドレスで呼び出してバインディングを設定するだけです。

AVG はがらくたの一部であることをお客様にお伝えしたいと思います。フロッピー ドライブにうさぎの足を入れた方がよいのですが、私の良心はそうさせません。

4

2 に答える 2

0

この問題を解決することはできませんでしたが、WCF を使い続けました。

他のクライアント マシンでこの問題が発生したことはありません。

于 2012-03-27T16:46:59.643 に答える
0

これは WCF を使用するよりも少し複雑ですが、TcpClient と TcpListener (System.Net.Sockets 内) を使用するだけで、実際の TCP ポートを開いて通信することができます (必ずリッスンしてください)。 Any ではなく IPAddress.Loopback を使用しないと、ファイアウォールの警告が表示される場合があります)。これはクロスプラットフォーム (Mono と .NET) であり、通常は動作するようです!

于 2011-11-29T23:35:53.287 に答える