Я создал DLL [доступный как пакет NuGet (.NetStandard 2.0 / 2.1)].
Когда создается экземпляр определенного класса в этой DLL, мы запускаем синхронный вызов GET для. Net Базового WebAPI, установленного на IIS на моем локальном компьютере (localhost), для загрузки некоторых данных конфигурации.
Эта DLL-библиотека использует одноэлементный HttpClient (здесь мы следуем «рекомендациям» Microsoft)
Factory.SingletonHttpClient().GetAsync(args.Uri).GetAwaiter().GetResult();
Я использовал этот пакет NuGet в целом ряде приложений, все из которых построены с использованием *. 1020 * Framework 4.7.2, и они работают просто отлично - данные успешно извлекаются из WebAPI.
Однако .... У меня есть одно конкретное приложение (опять-таки, 4.7.2), в котором GET постоянно дает сбой сообщение об ошибке:
System. Net .Sockets.SocketException HResult = 0x80004005 Сообщение = Существующее соединение было принудительно закрыто удаленным хостом
Это исключение было первоначально выброшено на этом стек вызовов: System. Net .Sockets.Socket.BeginReceive (byte [], int, int, System. Net .Sockets.SocketFlags, System.AsyncCallback, object)
Так что это должно быть что-то определенное c для моего приложения, которое использует этот пакет NuGet, так как оно работает для всех других приложений-потребителей. Тем не менее, я не понимаю, как выяснить, в чем проблема.