我有一个程序运行在一个循环(控制台应用程序),它必须上传一些文件到API。
这是我的代码:
Using(WebClient wc = new WebClient())
{
var serialized = JsonConvert.SerializeObject(rm);
wc.Headers[HttpRequestHeader.ContentType] = "application/json";
string myResult = wc.UploadString(URL,serialized);
}此代码位于一个方法中,并且此方法会根据算法处理时间而不时被调用。例如,我从一个服务器下载了一些文件,然后用上面的代码上传到另一个服务器。然后,我再次下载并上传...
在第一次迭代中,此upload方法正常工作。然而,在第二次迭代中,它给了我一个异常“线程正被中止”。
我之前用的是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发布于 2018-10-05 03:03:52
我发现我的问题不是因为这段代码。
当我的代码正在执行时,有另一个线程在运行。我不知道为什么,但是当计算机执行我上面写的代码时,这个线程就会停止(可能是巧合)。
我更改了管理线程的代码,我的代码开始像护身符一样工作。
感谢所有试图帮助我们的人。
https://stackoverflow.com/questions/52651108
复制相似问题