Параметры прокси в ASP.NET Core: launchSettings.json против рабочей среды
Отличайте значения прокси из профиля запуска для разработки от среды и обработчика HTTP, которые использует развёрнутый процесс ASP.NET Core.
Значение прокси в launchSettings.json относится к профилю запуска для разработки. Публикация приложения не делает этот профиль средой рабочего процесса IIS, службы или контейнера.
При сбое в развёрнутой среде проверьте процесс, который действительно запускает приложение. Его среда, учётная запись и обработчик HTTP определяют, какие входные данные прокси доступны.
| Где это работает | Что сравнить после развёртывания |
|---|---|
| Профиль запуска в IDE | Среда процесса-хоста |
| Интерактивный сеанс пользователя | Учётная запись службы и её параметры прокси |
| Клиент HTTP, созданный вручную | Обработчик, который использует внедрённый клиент приложения |
Инициализация прокси по умолчанию в современном HttpClient подчиняется зависящим от платформы правилам среды и системной конфигурации. Явно настроенный обработчик может переопределить эти значения по умолчанию. При использовании IHttpClientFactory проверьте регистрацию основного обработчика именованного клиента и имя, полученное в месте вызова. Проверьте оба источника, прежде чем заключать, что файл конфигурации был проигнорирован.
Старые примеры system.net/defaultProxy из .NET Framework описывают другую модель конфигурации. Не вставляйте этот раздел в современный файл развёртывания и не предполагайте, что его использует каждая реализация HTTP в .NET. При развёртывании в IIS модуль ASP.NET Core также имеет поддерживаемый механизм настройки среды процесса; сохраняйте остальную часть конфигурации хостинга при добавлении значений.
Зафиксируйте, существует ли ожидаемая переменная, не публикуя её полное значение с учётными данными. Затем убедитесь, что клиент, выполняющий неудачный запрос, использует этот источник. Правильно настроенный запускающий механизм не может исправить клиент, который намеренно использует другой маршрут.