【问题标题】:Check if a webpage is online using VB in asp.net在asp.net中使用VB检查网页是否在线
【发布时间】:2013-11-01 13:41:35
【问题描述】:

我一直在玩弄这个工作一段时间,但无济于事。

我想检查网站是否可用并在标签中显示其状态。我没有代码可以分享,因为我还没有得到这个。我正在使用 VS 2013 使用 VB 构建一个 asp.net 网站。

我以为我可以 ping 网站,但在使用 command.exe 进行多次测试后,网站即使在启动时也不会响应 ping。

我知道该页面将定期脱机以进行更新,因为上周发生了这种情况,并且当您获得页面时无法显示。我需要测试页面是否在线,如果是则返回true,否则返回false。

【问题讨论】:

  • 是您的网站还是第三方网站?如果您可以控制该站点,则可以在根目录中转储一个带有状态的小文本文件,这意味着如果它因维护而停机等。您可以更新它并从您的应用程序中读取它。
  • ping 是一个 ICMP 工具,可能会告诉您服务器是否已打开,但不会提供有关正在运行的服务(Ping 除外)的信息。尝试访问网站时检查页面是否返回是否足够?如果该页面仅包含文本“此服务不可用”怎么办?
  • 很多网站不响应 ping 所以这绝对不是一个可靠的方法。

标签: asp.net vb.net


【解决方案1】:

简单的方法是执行httpWebRequest 并检查结果。如果该页面不存在,您将收到指示该页面的错误。我对.webClient 不太熟悉,但显然也可以。

This 过去的问题为您提供了两者的示例。

【讨论】:

    【解决方案2】:

    您可以使用HttpWebRequest 轻松做到这一点。

    try {
        HttpWebRequest myHttpWebRequest = (HttpWebRequest) WebRequest.Create("siteAddress");
        HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();
        myHttpWebResponse.Close();
    }
    catch(WebException e) {
        //There is a problem accessing the site
    }
    

    【讨论】:

    • 404 会返回错误吗?我不相信,在这种情况下,这个捕获将无济于事。您必须解析服务器返回的内容。不过不难做到。
    • @nycdan,404,将是一个例外,在WebException 中捕获
    • 谢谢。我错过了。
    猜你喜欢
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多