【问题标题】:Get start process after reconnect the internet重新连接互联网后获取启动过程
【发布时间】:2014-10-09 08:35:27
【问题描述】:

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

我怎样才能在获得互联网连接后自动重启我的进程?

给我建议。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

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

    在伪代码中:

    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 这对于检查您的互联网连接无关紧要。只需在您认为最好的时间检查互联网连接,无论是在您开始写入文件之前还是之后。
    • 对不起,我要分享一些东西,即当这个进程运行时,我正在将数据写入我的 c:\ 驱动器的 oa 文本文件中,并从这个 .txt 文件中读取数据到一个数组并基于该日期我正在更新 mysql 中的其他表。从 Sql 服务器获取数据的服务。在这种情况下,我删除了互联网连接并在一段时间后插入。然后在命令提示符中我收到此消息“该进程无法访问 .txt 文件,因为它正在被另一个人使用”,然后没有更新我在 mysql 中的表。告诉我我做错了什么。
    • @user3463529 啊,这是另一个问题。发生的情况是您的进程在失去 Internet 连接后不会关闭与文件的连接。阅读using 将数据输入文件的语句,并在您失去互联网连接时优雅地关闭文件。
    猜你喜欢
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多