Windows服务在外部服务器上的WebClient.DownloadData(url)崩溃

本文关键字:DownloadData url 崩溃 WebClient 服务 外部 服务器 Windows | 更新日期: 2023-09-27 17:50:24

我有一个需要从网页获取数据的windows服务。

try
{
    WebClient client = new WebClient();
    byte[] test = client.DownloadData(url);
    Encoding latin1 = Encoding.GetEncoding("ISO-8859-1");
    string s = latin1.GetString(test);
    htmlDoc.LoadHtml(s);
}
catch (Exception ex)
{
    log.Fatal(ex.Message);
}

这段代码在我调试时工作得很好,然后我在外部web服务器上安装服务(使用installutil),但是当我试图启动服务时,它在这一行崩溃了。

由于某些原因,错误没有被记录,所以我不明白为什么我的代码失败了。我猜服务在进入catch之前就关闭了。

我也试过使用htmllagilitypack的HtmlWeb.Load(url),但它崩溃了相同的(这是合乎逻辑的我猜^^)。

我尝试在服务器上添加防火墙安全规则(在端口80上授权入站和出站流量),但没有成功。

我实在想不出好主意了,希望你能帮助我。

PS:我对windows服务知之甚少,这是我做的第一个。

Windows服务在外部服务器上的WebClient.DownloadData(url)崩溃

我找到问题所在了。

我的网络服务器的IP必须从我试图访问的网站被禁止。我试着在服务器上使用IE访问url,页面超时了。我的服务无法启动,仅仅是因为超时页面导致启动时间过长。它实际上并没有崩溃,因此没有捕获异常。

我真傻,早该试试的。希望能对大家有所帮助。

欢呼