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

时间:2014-03-16 10:26:17

标签: c# windows-services

我有一个需要从网页获取数据的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);
}

当我调试时,此代码运行正常,然后我在外部网络服务器上安装服务(使用installutil)但是当我尝试启动服务时,它会在此特定行上崩溃

由于某种原因,错误没有被记录,所以我不明白我的代码失败的原因。我猜测服务在进入捕获之前关闭了。

我也尝试过使用HtmlAgilityPack的HtmlWeb.Load(url),但它崩溃了(我认为这是合乎逻辑的^^)。

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

我想出了所有的想法,我们将非常感谢任何帮助:)

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

1 个答案:

答案 0 :(得分:2)

我发现了问题所在。

我的网络服务器的IP必须从我尝试访问的网站上被禁止。 我尝试使用我的服务器上的IE访问URL,页面刚刚超时.. 我的服务无法启动只是因为由于超时页面而耗费了太多时间。它实际上并没有崩溃,因此没有例外被抓住。

傻了,我以前应该试过这个。希望这可以帮助别人。

干杯

相关问题