我有一个嵌入式设备,该设备定期向后端发布POST状态。如果互联网连接丢失,我首先会获得一个超时连接。如下调用将产生“没有路由器ConnectFailure(没有通往主机的路由)”异常。
但是,当重新建立Internet连接时,呼叫将失败,并出现超时异常,并且它将永久执行。似乎某些资源未正确释放。 该代码在本机.net上运行良好。 单声道版本为5.12.0.226。 有谁知道这是什么问题,如果有解决方案? 代码如下:
private bool PostMessage(string message)
{
try
{
WebRequest webClient = WebRequest.Create(m_topicPostUrl);
webClient.Method = "POST";
webClient.Headers["Authorization"] = m_topicSAS;
webClient.ContentType = "application/atom+xml;type=entry;charset=utf-8";
byte[] byteArray = Encoding.UTF8.GetBytes(message);
webClient.ContentLength = byteArray.Length;
using (Stream dataStream = webClient.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
using (WebResponse response = webClient.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseFromServer = reader.ReadToEnd(); // data not used
}
}
}
return true;
}
catch (WebException ex)
{
AddMessageToLog(ex.Message);
}
return false;
}
非常感谢您。