Веб-запрос на моно не восстанавливается после потери интернет-соединения - PullRequest
0 голосов
/ 27 мая 2019

У меня есть встроенное устройство с обычным статусом POST для бэкэнда.Если соединение с интернетом потеряно, я сначала получаю соединение по тайм-ауту.Следующий вызов дает исключение «Нет маршрутизатора ConnectFailure (Нет маршрута к хосту)», как ожидалось.

Однако, когда подключение к Интернету восстанавливается, вызов завершается неудачно с исключением по времени ожидания, и это происходит всегда.Кажется, что некоторые ресурсы не выпущены должным образом.Код работает на родном .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;
    }

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...