【发布时间】:2015-07-10 19:00:51
【问题描述】:
我想在我的程序中获取有关 Microsoft 更新的信息。但是,服务器在大约 80% 的时间返回 404 错误。我将有问题的代码归结为这个控制台应用程序:
using System;
using System.Net;
namespace WebBug
{
class Program
{
static void Main(string[] args)
{
while (true)
{
try
{
WebClient client = new WebClient();
Console.WriteLine(client.DownloadString("https://support.microsoft.com/api/content/kb/3068708"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
}
}
当我运行代码时,我必须通过循环几次,直到得到实际响应:
远程服务器返回错误:(404) 未找到。
远程服务器返回错误:(404) Not found.
远程服务器返回错误:(404) Not found.
我猜是网络连接问题... @PranayRana 正如我所写,我在具有不同 ISP 的两台不同机器上测试了这种行为。 并且: 结果不是简单的连接错误,我从 Microsoft IIS 服务器(这是默认的 404 模板)获得了一个实际网页。其他网站不会出现此问题。 我也能重现这个。我最好的猜测是用户代理字符串(或类似字符串),微软给你一个 404,这样机器人就不会连接。我会研究这个。 我已经在浏览器上尝试了该 URL,但得到了 404,因此它可能与浏览器与自定义应用程序无关。 我可以重现相同的行为:控制台应用程序在 80% 的情况下返回 404(我认为甚至更高)并且浏览器 (Chrome) 没有问题。但是,VisualStudio 的“内部浏览器”(当您按住 CTRL 并单击代码中的 URL 时会打开)给出相同的结果:80% 的案例 404。
标签: c# web http-status-code-404