重新连接互联网后获取启动过程

时间:2014-10-09 08:35:27

标签: c# asp.net

我正在从.exe文件运行服务,当我测试这个系统时,我删除了互联网连接,并且在插入一段时间后,互联网正在连接,但我的进程没有连接。在命令提示符下,它显示连接问题。

如何在连接互联网后自动重启我的流程?

建议我。

1 个答案:

答案 0 :(得分:0)

再次连接互联网时,不要重新启动流程,只需让流程按计划运行,一旦需要运行,请检查互联网连接。如果有互联网连接,做你的事情,否则优雅地结束当前的运行。

伪代码中的

public void StartOfMethodThatRequiresInternet(){
    if(!requiredAddress.IsAvailable()){
        return;
    }
    DoTheRestOfTheProgram();
}

安排此功能运行,但通常需要它,通过服务或Windows Scheduler。它将自动启动并检查您需要访问的网站是否可用。如果它不可用,它将自动返回。

要检查网站是否可用,请为标头发出HttpWebRequest并检查响应代码是否正常。 Check if a url is reachable - Help in optimizing a Class解释了如何执行此操作:

HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
request.Timeout = 15000;
request.Method = "HEAD"; // As per Lasse's comment
try
{
    using (HttpWebResponse response = (HttpWebResponse) request.GetResponse())
    {
        return response.StatusCode == HttpStatusCode.OK;
    }
}
catch (WebException)
{
    return false;
}