Windows のプロキシ変更: アプリが古い経路を使い続ける理由
保存された Internet Settings の値、クライアントが読み直した構成、既存の接続は、レジストリ書き込みが失敗しなくても食い違うことがあります。
Windows の設定画面に新しいプロキシが表示されても、アプリケーションは以前の経路のまま動作し続けることがあります。どの状態を観察しているのかを切り分けます。
| 観察 | 何を確定できるか |
|---|---|
| 新しい値が保存されている | 選択したユーザーまたはマシンの構成が変わった |
| クライアントが新しい構成を読み取った | そのクライアントが使用する取得元を更新した |
| 新しい接続が新しい経路を使う | 更新されたポリシーが新しいルーティング判断に影響した |
WinINet は接続ごとの Internet Options と通知を提供し、INTERNET_OPTION_SETTINGS_CHANGED や INTERNET_OPTION_REFRESH もその一つです。更新する設定にはサポートされている構成 API を使い、そのエラーを報告してください。レジストリへの書き込みだけではクライアント側に古い見え方が残ることがあり、一般的な設定のブロードキャストはすべてのネットワークライブラリに再読み取りを強制するものではありません。
次に、影響を受けているアプリケーションのスタックとアカウントを特定します。.NET 9 の Windows クライアントでは、システムプロキシの更新ライフサイクルが明示的なプロキシオブジェクトや環境既定値とは異なります。WinHTTP や独自のプロキシ設定を持つクライアントは別のケースです。現在のユーザーでの変更は、別のアカウントで動くサービスについてほとんど何も語りませんし、WinINet の更新は任意のソケットにプロキシ対応を提供できるわけではありません。
最後に、新しい接続と、以前に確立した接続やトンネルを区別します。設定を変えても、そのストリームが自動的に移行されるわけではありません。プロキシ変更を公開するアプリケーションには、保存・通知・新規接続に関する明確なポリシーが必要です。