0

我开发了循环发送请求到网站的小程序。从网页获取我需要的一些信息,然后存储到我的数据库中。

大约有 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
    }
}
4

1 回答 1

0

我也遇到过这个问题,查了很多文档,没有找到解决方法。似乎这个问题是由服务器设置引起的,所以我们无法在代码中修复它。我的解决方案是当 507 错误发生时,保存当前点,然后等待几分钟,然后继续从断点发送 http 请求。

于 2013-05-09T08:51:17.807 回答