我开发了循环发送请求到网站的小程序。从网页获取我需要的一些信息,然后存储到我的数据库中。
大约有 1400 个请求。
我在开发机器和 Windows Azure VM 上运行它。
起初,它在两台机器上都运行良好(第一天)。但是第二天我在 Windows Azure VM 上运行它之后。像这样抛出异常。
Web 异常:System.Net.WebException:远程服务器返回错误:(507)存储不足。在 System.Net.WebClient.OpenRead(Uri address) 在 System.Net.WebClient.OpenRead(String address) 在 StockChecker.MainWindow.Worker_DoWork(Object Sender, DoWorkEventArgs e)
但是在开发机器上没问题。
它发生了什么。目标网站是否被检测为机器人?如何解决这个问题。
这是我的代码。
WebClient client = new WebClient();
List<tbmProduct> prodList = // Get data from my database;
foreach (var prod in prodList)
{
string content;
string link = prod.SupplierUrl;
try
{
using (StreamReader reader = new StreamReader(client.OpenRead(link)))
{
content = reader.ReadToEnd();
// Do something. Update my database.
}
}
catch (WebException ex)
{
// write log
}
catch (Exception ex)
{
// write log
}
}