HOSTSファイルを変更するときに.NETWebRequestを使用しています。System.Netがこれらの変更を尊重していないことを確認していますが、どうすればそれを実現できますか?
単一のホスト名の背後に多数のサーバーが負荷分散されています。たとえば、「example.com」としましょう。それらのいくつかを個別にターゲットにしたいので、example.comにリクエストを送信する前に、プログラムはHOSTSファイルにマシン固有のIPアドレスをハードコーディングします。
163.56.0.34 example.com
最初のサーバーと最初のリクエストの場合、これは正常に機能します。次に、私のプログラムはHOSTSファイルを再度変更します。
163.56.0.48 example.com
そして、新しいHttpWebRequestを作成します。これを送信すると、NETMONで、予想される2番目のIPアドレスではなく最初のIPアドレス(163.56.0.34)に送信されることがわかります。
ブレークポイントとデバッグトレースを使用して、毎回正しい値がHOSTSファイルに書き込まれることを確認しました。ブラウザまたは他のプログラムからexample.comにアクセスしようとすると、HOSTSファイルを尊重し、2番目のIPアドレスに移動します。
NETMONを使用して、リクエストが表示されているIPアドレスに直接送信されることを確認しました。HTTPプロキシはありません。
他のすべては変更されたHOSTSファイルを尊重しているので、System.Netインフラストラクチャがexample.comなどのDNSホスト-IPアソシエーションをキャッシュしていることを強く疑っています。ただし、このキャッシュへの参照は見つからず、フラッシュしたりオフにしたりする方法もわかりません。
キャッシュを処理するための手順、これらの症状を引き起こしている可能性のある他の原因に関する提案、または役立つ可能性のある他の提案された診断手順を歓迎します。