Tarkista .NETin NO_PROXY-säännöt HttpClient.DefaultProxy.IsBypassed -menetelmällä
Luettele sekä paljas verkkotunnus että alkupisteellinen muoto, kun HttpClientin on ohitettava välityspalvelin molempien kohdalla, ja tarkastele sitten IsBypassed-arvoa.
HttpClientin dokumentoidun ympäristön välityspalvelinkäytännön mukaan example.internal ja .example.internal täsmäävät eri tavoin. Paljas nimi valitsee ylätason isäntänimen; alkupisteellinen muoto valitsee sen aliverkkotunnukset.
Jos molempien pitää kulkea suoraan, sisällytä molemmat käynnistysympäristöön:
export no_proxy='example.internal,.example.internal'
Yhdistä nämä aiottuun olemassa olevaan ohitusluetteloon. Järjestelmissä, joissa muuttujien nimet erottavat isot ja pienet kirjaimet, .NET tarkistaa ensin pienikirjaimiset välityspalvelinympäristön nimet ja vasta sitten isokirjaimiset, joten vanhentunut no_proxy voi mennä NO_PROXYn edelle.
Sovelluksen sisällä oletusvalitsin voidaan tarkastella lähettämättä HTTP-pyyntöä kohteeseen:
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)}");
}
Katkelma käyttää nimiavaruuksia System ja System.Net.Http. Jos sovellus antoi nimenomaisesti toisen IWebProxy-rajapinnan toteutuksen, tarkastele sen sijaan käsittelijän todellista välityspalvelinta. Aseta aiottu ympäristö ennen kuin oletusvälityspalvelin alustetaan.
Nämä ovat .NETin dokumentoidut säännöt. Samalla merkkijonolla saatu curl-tulos ei osoita, että toinen asiakas valitsi saman reitin, ja ohituspäätös vaatii yhä suoraa verkkoyhteyttä.