Почему я получаю ThreadWas прерывается - PullRequest
0 голосов
/ 04 октября 2018

У меня есть программа, работающая в цикле (консольное приложение), и она должна загрузить некоторый файл в API.

Это мой код:

Using(WebClient wc = new WebClient())
{
     var serialized = JsonConvert.SerializeObject(rm);

     wc.Headers[HttpRequestHeader.ContentType] = "application/json";
     string myResult = wc.UploadString(URL,serialized);
}

Этот код находится вметод, и этот метод вызывается время от времени, в зависимости от времени обработки алгоритма.Например, я загружаю некоторые файлы с сервера, а затем загружаю их на другой сервер с указанным выше кодом.Затем я загружаю и загружаю снова ...

На первой итерации этот метод загрузки работает правильно.Однако во второй итерации мне выдается исключение «Поток был прерван».

Раньше я использовал HttpClient, поэтому я перешел на WebClient, потому что HttpClient вызывал ту же проблему.

Может кто-нибудь, пожалуйста, помогите мне с этим вопросом?

Исключение stackTrace:

   at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
   at System.Net.ConnectStream.ProcessWriteCallDone(ConnectionReturnResult returnResult)
   at System.Net.HttpWebRequest.CheckDeferredCallDone(ConnectStream stream)
   at System.Net.HttpWebRequest.GetResponse()
   at System.Net.WebClient.GetWebResponse(WebRequest request)
   at System.Net.WebClient.DownloadBits(WebRequest request, Stream writeStream, CompletionDelegate completionDelegate, AsyncOperation asyncOp)
   at System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request)
   at System.Net.WebClient.UploadString(Uri address, String method, String data)
   at System.Net.WebClient.UploadString(String address, String data)
   at Bizagi.DownloadUpload.UploadHelper.UploadFile(Risk rm, Stopwatch sla) in C:\Users\...\UploadHelper.cs:line 189
   at Bizagi.DownloadUpload.UploadHelper.UploadToRisk(TACTIVE obj, String destination, Stopwatch timerSLA) in C:\Users\...\UploadHelper.cs:line 36

введите описание изображения здесь

1 Ответ

0 голосов
/ 04 октября 2018

Я понял, что моя проблема не в этом коде.

Пока выполнялся мой код, был запущен другой поток.Я не знаю почему, но этот поток раньше останавливался, когда компьютер выполнял код, который я написал выше (возможно, совпадение).

Я изменил код, который управлял потоком, и мой код начал работать как чудо.

Спасибо всем, кто пытался помочь.

...