2014-10-09 63 views
-5

我正在运行一个.exe文件的服务,当我测试此系统时,我删除了互联网连接,并且在一段时间插入之后,互联网正在连接,但我的进程未连接。在命令提示符中显示连接问题。重新连接互联网后获取启动过程

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

给我建议。

回答

0

重新连接互联网后,不要重新启动进程,只需让进程按计划运行,一旦需要运行,请检查互联网连接。如果有互联网连接,请做好自己的事情,否则会优雅地结束当前的运行。

伪代码:

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; 
} 
+0

对不起,我对去分享一些东西,那就是当这个进程在运行我在Ø在我的C一个文本文件中写入数据:\驱动器。 – user3463529 2014-10-09 09:02:15

+0

@ user3463529这对检查您的Internet连接无关紧要。只要在您认为是最佳时机时检查互联网连接,无论是在开始编写文件之前或之后。 – Nzall 2014-10-09 09:04:56

+0

对不起,我得到分享一些东西,那就是当这个进程运行时,我正在写一个文本文件中的数据在我的c:\驱动器,并从这个.txt文件我正在读取数据到一个数组和基于那天我正在更新mysql中的其他表。该服务从Sql服务器获取数据。在这种情况下,我删除了互联网连接,并在一段时间后插入。然后在命令提示符下,我收到此消息“该进程无法访问.txt文件,因为它正在被另一个人使用”,则没有更新我的表在mysql.Advise我什么我做错了。 – user3463529 2014-10-09 09:11:50