C#:用于在分离网络之后控制网络崩溃的异步方法

时间:2015-11-19 09:07:39

标签: c# visual-studio debugging service ping

如果客户端与服务器连接,我正在做一个异步方法,通过我通知服务代理。 问题是该方法工作正常,但是当我进行备份时,测试连接以断开网络电缆和拼接......这就是问题:每次我做一段时间并连接网络电缆即连接正确标记我,但一旦我断开网络电缆我调试阻止我调试。不是为什么,但是拆卸电缆,挂起,并且没有更多,我测试了try catch,但也不例外,只是停止了一会儿,而且方法是植入任何东西。 有人可以解释如何解决,或者至少为什么?谢谢。

private static async Task checkEnrollmentAsync()
{
    dataaccess da = new dataaccess();

    using (var webapiclient = new HttpClient())
    {
        webapiclient.BaseAddress = new Uri("http://myaddressforcheckOnlineService/");
        webapiclient.DefaultRequestHeaders.Accept.Clear();
        webapiclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        // HTTP GET

        while (true)
        {
            //bool networkUp = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
            bool networkUp = IsAvailableNetworkActive();
            if (networkUp)
            {
                await Task.Delay(10000); //300000+
                HttpResponseMessage response = await webapiclient.GetAsync("api/myaddressforcheckOnlineService");
                var result = response.Content.ReadAsStringAsync().Result;

                if (response.IsSuccessStatusCode)
                {
                    await da._checkEnrollmentConnection(true);
                    log.Info("enrollment OK, scrittura su db connessione ok");
                }
                else
                {
                    await da._checkEnrollmentConnection(false);
                    log.Error("enrollment KO");
                }
            }
            else
            {
                await da._checkEnrollmentConnection(false);
                log.Error("enrollment KO");
            }
        }
    }
}

此代码位于Windows服务中。

0 个答案:

没有答案