在我的程序中,我需要从服务器请求数据,并在收集响应时,使用返回的数据进行进一步处理。
我正在使用" system.net.webrequest"同一类。我对此几乎没有问题:
这是一个更好的主意吗?如果没有,请你建议。
我正在向多个服务器(> 10台服务器)发送请求并使用来自它们的数据。我观察到由于某种原因,如果服务器无法访问,那么我的程序停止抛出异常
服务器无法访问
类型为#System; Net.WebException'的第一次机会异常发生在System.dll
我该如何解决这个问题?有什么想法吗?
施展你的帮助。
谢谢, 拉胡
答案 0 :(得分:3)
关于例外;实施try
/ catch
区域,并采取适当的措施(可能记录错误并将其排队等待一段时间重试)。
我不完全确定第一个问题是是什么,因为我们不知道数据/系统是什么 - 但有些想法:
request.Accept = "gzip,deflate";
,如果使用HttpWebRequest
);或者如果你控制管道的两端,可能是更密集的序列化格式Dictionary<,>
之类的内容;如果不知道“处理”或“数据”在您的特定背景下意味着什么,我无法告诉您什么是“合适的”; p 答案 1 :(得分:1)
只有在您不希望或不能在收到数据时处理数据或者为了进行调试而需要处理数据后,才需要将数据保存到文件中。我通常会避免像这样创建这样的文件,因为它会增加维护开销。
要继续处理来自其他服务器的数据,如果出现异常,则需要使用Try/Catch
块,如下所示(伪):
foreach (var server in serverList)
{
try
{
... fetch data and process ...
}
catch (Exception ex)
{
// handle exception (log, requeue, etc)
}
}