2014-09-24 52 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())); 

欣賞,如果任何人能幫助我們。

編輯:請注意,我們可以在本地調試並正常工作。只有當我們在Azure雲服務中以工作角色運行此項時纔會出現問題。

回答

1

我終於解決了這個問題。只要關閉這個(可能幫助別人) -

After doing remote debugging我們發現了以下內部異常: {「請求已中止:請求已被取消。」}

而且,根本原因這個問題在於我們確實將超時設置爲小於實際讀取(JsonTextReader)操作所需的時間。的代碼的下面線,其設置超時:

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

所以,FIX是增加超時值所以在讀取數據請求將不被取消。

相關問題