したがって、この問題のコード例を実際に提供することはできないため、この質問が少し「あいまい」になることはわかっていますが、問題を説明しようとすると、誰かがそれを認識する可能性があります。
基本的に、C# で記述された 2 つのアプリケーションがあります。
[アプリ A] は TCP ソケットを介して [アプリ B] に接続し、データを送信します。[アプリ B] はもちろん、同じ TCP 接続で [アプリ A] にデータを送信できます。【アプリB】は6~7年使用しているアプリで、「本番サーバー」で問題なく動いています。
問題はこれです:
[アプリ A] と [アプリ B] をローカル マシンで実行すると、comm. それらの間は期待どおりに機能します。
しかし、[アプリ A] と [アプリ B] をサーバー/リモート マシンで実行すると (どちらも同じマシンで実行されますが、代わりにリモート サーバーで実行されます)、それらの間の通信は期待どおりに機能しません。すると【アプリA】が接続して【アプリB】にデータを送信し、【アプリB】が反応して【アプリA】に返信するが、【アプリA】では返信が届かず、代わりにTCP 接続が強制終了されます。
これは、ローカル マシンでまったく同じコードを実行した場合には発生しません。
ここで、ローカル マシンで [アプリ A] を実行し、[アプリ A] がリモート/サーバー マシンの [アプリ B] に接続すると、期待どおりに動作します。コム。動作し、TCP 接続は存続します。
[アプリ B] をリモート サーバーで実行し続け、[アプリ A] を (ローカル マシンではなく) リモート サーバーで起動すると、再び機能しなくなります。[App A] がデータを送信した後、TCP 接続は強制終了されます。
私が見たように、これはコードの問題ではありません。ローカルで動作し、別のマシンでアプリを実行しても問題ありませんか?
.NET 4.0 を使用して、ローカルの Win 7 とリモート/サーバー マシンの Win Server 2003 の両方のマシンで Windows を実行しています。
これは鐘を鳴らしますか?