System.Net.Http.HttpRequestException Ошибка при копировании содержимого в поток только при первом вызове - PullRequest
0 голосов
/ 03 апреля 2019

Я вызываю веб-API ASP.Net, который работает локально и столкнулся с проблемой, которая возникает только после запуска моего приложения - только первый вызов завершается с ошибкой System.Net.Http.HttpRequestException.Я использую аутентификации Windows.Первый звонок никогда не достигает моего API, и исключение выдается клиенту.при вызове PostAsync.Любой последующий вызов после первого работает нормально.

StackTrace:

System.Net.Http.HttpRequestException: Ошибка при копировании содержимого в поток.---> System.IO.IOException: операция чтения не выполнена, см. Внутреннее исключение.---> System.Net.WebException: запрос был прерван: соединение было неожиданно закрыто.в System.Net.ConnectStream.BeginRead (буфер Byte [], смещение Int32, размер Int32, обратный вызов AsyncCallback, состояние объекта) в System.Net.Http.HttpClientHandler.WebExceptionWrapperStream.BeginRead (буфер Byte [], смещение Int32, счетчик Int32,Обратный вызов AsyncCallback, состояние объекта) --- конец трассировки стека внутренних исключений --- в System.Net.Http.HttpClientHandler.WebExceptionWrapperStream.BeginRead (буфер Byte [], смещение Int32, число Int32, обратный вызов AsyncCallback, состояние объекта) в системе.Net.Http.StreamToStreamCopy.StartRead () --- Конец трассировки стека внутренних исключений --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача Task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndtificationat System.Runtime.CompilerServices.TaskAwaiter`1.GetResult (

Код:

        {
            var exampleString = "example json as string";
            var content = new StringContent(exampleString, Encoding.UTF8, "application/json");
            HttpResponseMessage response;
            var handler = new HttpClientHandler { UseDefaultCredentials = true };
            using (var httpClient = new HttpClient(handler))
            {
                response = httpClient.PostAsync("http://localhost:5099/api/test", content).GetAwaiter().GetResult();
            }
        }
        catch (Exception ex)
        {
            // exception caught here on first call
        }

Метод API, вызываемый выше

        [HttpPost]
        [Authorize(Policy = nameof(Permissions.MyPermission))]
        public ActionResult Post([FromBody]string payload)
        {      
        }

Я не уверенчто происходит здесь. Мой exampleString является допустимой строкой JSON, которая работает при любом последующем вызове. tЭто единственное место в моем приложении, где используется HttpClient.что вызывает - «Ошибка при копировании контента в поток»?

Я нацеливаюсь на .Net Framework 4.5 на клиенте.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...