我正在从.exe文件运行服务,当我测试这个系统时,我删除了互联网连接,并且在插入一段时间后,互联网正在连接,但我的进程没有连接。在命令提示符下,它显示连接问题。
如何在连接互联网后自动重启我的流程?
建议我。
答案 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;
}