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服务知之甚少,这是我做的第一个。
我找到问题所在了。
我的网络服务器的IP必须从我试图访问的网站被禁止。我试着在服务器上使用IE访问url,页面超时了。我的服务无法启动,仅仅是因为超时页面导致启动时间过长。它实际上并没有崩溃,因此没有捕获异常。
我真傻,早该试试的。希望能对大家有所帮助。欢呼