2014-09-24 1 views
1

Мы получаем ниже исключение при чтении данных с использованием JsonTextReaderWindows Azure - Невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом

Не удается прочитать данные из транспортного соединения : Существующее соединение было принудительно закрыто удаленным хостом.

JsonTextReader jsonReader - параметр

while (hasRecords(jsonReader, JsonToken.StartObject, null, null)) //Row 
     { 
      ... 

      //it's ok to read this all into memory - it's just one row's worth of data 
      JArray values = (JArray)JToken.ReadFrom(jsonReader); 

Кроме того, в том числе код для реализации HttpPost для большей ясности

HttpClientHandler handler = new HttpClientHandler() { Credentials = taskProfileInfo.Credential }; 

     HttpClient httpClient = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(taskProfileInfo.CommandTimeout) }; 
     httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 


     HttpResponseMessage response; 

     HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url); 
     request.Content = new StringContent(postBody, Encoding.UTF8, "application/json"); 

     response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead); 

     response.EnsureSuccessStatusCode(); 

     //using (var responseStream = await response.Content.ReadAsStreamAsync()) 
     //{ 
     // using (var reader = new StreamReader(responseStream)) 
     // { 
     //  responseFromAPI = reader.ReadToEnd(); 
     // } 
     //} 

     return new JsonTextReader(new StreamReader(await response.Content.ReadAsStreamAsync())); 

Цените, если кто может помочь нам ..

Edit: Обратите внимание, что мы можем отлаживать его локально и отлично работать. Только проблема, когда мы запускаем это как Роль рабочего в сервисе Azure Cloud.

ответ

1

Я, наконец, обратился к этой проблеме. Просто, чтобы закрыть это (может помочь кому-то) -

After doing remote debugging мы нашли ниже внутреннее исключение: { «Запрос был прерван: запрос был отменен.»}

И, корневой причиной для этого проблема заключается в том, что мы установили тайм-аут на меньшее, чем то, что займет операция чтения (JsonTextReader). Ниже строка кода, которая устанавливает тайм-аут:

HttpClient httpClient = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(taskProfileInfo.CommandTimeout) }; 

Таким образом, FIX, чтобы увеличить значение времени ожидания так, что запрос не будет отменен при чтении данных.

Смежные вопросы

 Смежные вопросы