Ifølge HttpClients dokumenterede miljøproxy-politik matcher example.internal og .example.internal forskelligt. Det nøgne navn vælger værværten; formen med ledende punkt vælger dens underdomæner.

Hvis begge skal gå direkte, skal du medtage begge i opstartsmiljøet:

export no_proxy='example.internal,.example.internal'

Flet dem sammen med den tilsigtede eksisterende undtagelsesliste. På systemer hvor variabelnavne skelner mellem store og små bogstaver, kontrollerer .NET først proxyvariabler med små bogstaver og derefter dem med store, så en forældet no_proxy kan få forrang for NO_PROXY.

Inde i programmet kan standardvælgeren undersøges uden at sende HTTP-anmodningen til destinationen:

foreach (var host in new[] {
    "example.internal", "api.example.internal", "other.internal"
})
{
    var uri = new Uri("https://" + host + "/");
    Console.WriteLine($"{host}: bypass={HttpClient.DefaultProxy.IsBypassed(uri)}");
}

Uddraget bruger System og System.Net.Http. Undersøg i stedet den faktiske handler-proxy, hvis programmet udtrykkeligt har angivet en anden IWebProxy. Angiv det tilsigtede miljø, før standardproxyen initialiseres.

Dette er .NETs dokumenterede regler. Et curl-resultat med den samme streng beviser ikke, at en anden klient valgte samme rute, og en undtagelsesbeslutning kræver stadig direkte netværksadgang.

Relaterede artikler