1. ホーム
  2. c#

[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。

2022-01-31 06:39:07

質問

サーバーアプリを使用しているのですが、クライアントが接続しようとすると、以下のようなエラーが発生することがあります。

注: "couldn't get stream from client or login failed" は、catch文の中で私が追加したテキストです。

そして、それが停止した行 ( sThread : 96行目 ) は :

tcpClient = (TcpClient)client;
clientStream = tcpClient.GetStream();
sr = new StreamReader(clientStream);
sw = new StreamWriter(clientStream);

// line 96:                 
a = sr.ReadLine();

この問題の原因は何でしょうか?常に起こるわけではないことに注意してください。

解決方法は?

このエラーは通常、ターゲットマシーンは動作しているが、接続しようとしているサービスが利用できないことを意味します。 (停止しているか、クラッシュしているか、別のリクエストでビジー状態になっている)。

英語では への接続は マシン (サービスが動作しているリモートホスト/サーバー/PC)は作成されましたが、サービスが利用できないため オン そのマシンは、そのリクエストをどう処理すればいいのかわかりませんでした。

マシンとの接続ができない場合は、別のエラーが表示されるはずです。 何だったか忘れましたが、「Service Unreachable"」または「Unavailable"」のようなものです。

編集 - 追加

ファイアウォールがポートをブロックしていることが原因である可能性もありますが、断続的("クライアントが接続しようとするときに時々")であるとのことですので、その可能性は非常に低いと思われます。 返信する前に精神的に除外してしまったので、元々そのようなことは書いていません。