我有一个需要从网页获取数据的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服务知之甚少,这是我做过的第一个。答案 0 :(得分:2)
我发现了问题所在。
我的网络服务器的IP必须从我尝试访问的网站上被禁止。 我尝试使用我的服务器上的IE访问URL,页面刚刚超时.. 我的服务无法启动只是因为由于超时页面而耗费了太多时间。它实际上并没有崩溃,因此没有例外被抓住。
傻了,我以前应该试过这个。希望这可以帮助别人。干杯