Preserving .NET's Per-Destination Auto-Proxy Decisions
Preserve per-destination automatic proxy decisions instead of replacing the policy with the result for one test URL.
Resolving the proxy for one URL gives you a decision for that URL. It does not reveal the complete automatic-routing policy for every destination.
That matters when code calls GetProxy with an external test address, takes the returned URI, and installs a new fixed WebProxy globally. The original policy could send another host direct or select a different proxy. The replacement has discarded that information.
Keep a supported policy object with the client when destination-dependent behavior is intended. Inspect its decision for the actual failing URL rather than using an unrelated website as a universal probe.
Also interpret a direct decision correctly. An implementation can return the original destination when it is bypassed; compare the bypass decision instead of automatically relabelling that URI as a proxy.
If a fixed endpoint is the application's intended policy, configure it explicitly and document that choice. A fixed route derived accidentally from one auto-proxy result is much harder to explain when the next destination behaves differently.