Java JDBC ドライバーの .NET 版として、C# で .NET データ プロバイダーを作成するのに忙しくしています。このドライバーは、XDR (旧マーシャリング プロトコル) を使用して TCP/IP 経由で RulesService に接続する必要があります。JDBC ドライバーは正常に動作していますが、C# の最初のプロトタイプでは、「確立された接続がホスト マシンのソフトウェアによって中止されました」というエラーが表示されました。
解決策を見つけるのに2日かかりました:使用System.IO.BufferedStream
!
例えば:
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.SendTimeout = timeout;
socket.ReceiveTimeout = timeout;
socket.SendBufferSize = 1048510;
socket.ReceiveBufferSize = 1048510;
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
socket.NoDelay = true;
socket.Connect(host, port);
this.datastream = new **BufferedStream**((Stream)new NetworkStream(socket), 1048510);
この投稿が、誰かが解決策を探すのに 2 日も費やさないようにするのに役立つことを願っています :-)