WebClient抛出异常远程服务器返回错误:(507)存储空间不足

时间:2013-04-10 06:12:04

标签: c# web-crawler webclient bots

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

这是大约1400个请求。

我在开发机器和Windows Azure VM上运行它。

首先,它在两台机器上都能很好地工作(第一天)。 但是在我第二天在Windows Azure VM上运行之后。 它会像这样抛出异常。

  

Web异常:System.Net.WebException:远程服务器返回了一个   错误:(507)存储空间不足。在   System.Net.WebClient.OpenRead(Uri地址)at   System.Net.WebClient.OpenRead(String address)at   StockChecker.MainWindow.Worker_DoWork(对象发件人,   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
    }
}

1 个答案:

答案 0 :(得分:0)

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