-5
我正在运行一个.exe文件的服务,当我测试此系统时,我删除了互联网连接,并且在一段时间插入之后,互联网正在连接,但我的进程未连接。在命令提示符中显示连接问题。重新连接互联网后获取启动过程
如何在获得互联网连接后自动重启我的过程?
给我建议。
我正在运行一个.exe文件的服务,当我测试此系统时,我删除了互联网连接,并且在一段时间插入之后,互联网正在连接,但我的进程未连接。在命令提示符中显示连接问题。重新连接互联网后获取启动过程
如何在获得互联网连接后自动重启我的过程?
给我建议。
重新连接互联网后,不要重新启动进程,只需让进程按计划运行,一旦需要运行,请检查互联网连接。如果有互联网连接,请做好自己的事情,否则会优雅地结束当前的运行。
伪代码:
public void StartOfMethodThatRequiresInternet(){
if(!requiredAddress.IsAvailable()){
return;
}
DoTheRestOfTheProgram();
}
附表但是这个功能来运行往往你需要它,通过服务或通过Windows调度。它会自动启动并检查您需要访问的网站是否可用。如果它不可用,它会自动返回。
若要检查网站是否可用,请为标题发出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;
}
对不起,我对去分享一些东西,那就是当这个进程在运行我在Ø在我的C一个文本文件中写入数据:\驱动器。 – user3463529 2014-10-09 09:02:15
@ user3463529这对检查您的Internet连接无关紧要。只要在您认为是最佳时机时检查互联网连接,无论是在开始编写文件之前或之后。 – Nzall 2014-10-09 09:04:56
对不起,我得到分享一些东西,那就是当这个进程运行时,我正在写一个文本文件中的数据在我的c:\驱动器,并从这个.txt文件我正在读取数据到一个数组和基于那天我正在更新mysql中的其他表。该服务从Sql服务器获取数据。在这种情况下,我删除了互联网连接,并在一段时间后插入。然后在命令提示符下,我收到此消息“该进程无法访问.txt文件,因为它正在被另一个人使用”,则没有更新我的表在mysql.Advise我什么我做错了。 – user3463529 2014-10-09 09:11:50