【发布时间】:2012-02-18 10:54:09
【问题描述】:
我有一个通过 Mono 2.10 在 Ubuntu 上运行的 .NET 程序
该程序每分钟左右通过 HttpWebRequest 下载一个网页,这在大多数情况下都可以正常工作:
String result;
WebResponse objResponse;
WebRequest objRequest = System.Net.HttpWebRequest.Create(url);
using (objResponse = objRequest.GetResponse())
{
using (StreamReader sr =
new StreamReader(objResponse.GetResponseStream()))
{
result = sr.ReadToEnd();
// Close and clean up the StreamReader
sr.Close();
}
}
问题是几天后我开始抛出异常:
DateTime: 01/25/2012 08:15:41
Type: System.Net.WebException
Error: Error: NameResolutionFailure
Stack:
at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
at System.Net.HttpWebRequest.GetResponse () [0x00000] in <filename unknown>:0
at socks_server.Program.readHtmlPage (System.String url) [0x00000] in <filename unknown>:0
at socks_server.Program.getAccessKeysProc () [0x00000] in <filename unknown>:0
服务器还是abel解析DNS,例如
wget http://www.google.com
将在没有任何问题的情况下返回文件,ping 和其他解析 DNS 的命令也将如此。
但是,我的程序将继续抛出该异常,直到我重新启动它。重新启动应用程序后,它将重新开始正常工作。
我检查了系统上的打开文件计数(400 ish)、内存使用量(327mb of 4gb)、CPU 使用率(2-3%),一切正常。
有什么想法吗?
【问题讨论】:
标签: c# ubuntu mono httpwebrequest