我有一个循环运行的程序(控制台应用程序),它必须将一些文件上传到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
答案 0 :(得分:0)
我发现我的问题不是因为此代码。
正在执行我的代码时,有另一个线程正在运行。 我不知道为什么,但是当计算机执行我上面编写的代码时,该线程曾经停止运行(也许是巧合)。
我更改了管理线程的代码,并且我的代码开始像魅力一样工作。
感谢所有尝试提供帮助的人。