C# 使用XmlReader.Create(uri)防止或处理超时

C# 使用XmlReader.Create(uri)防止或处理超时,c#,.net,asp.net,.net-3.5,xmlhttprequest,C#,.net,Asp.net,.net 3.5,Xmlhttprequest,有时,当通过URL读取XML时,会出现超时异常。我可以做些什么来防止这种情况发生,或者这是远程服务器的问题吗?下面是我的简单代码: XmlDocument doc = new XmlDocument(); doc.Load(XmlReader.Create(this.RssUrl)); 我看到一篇帖子说KeepAlive可能会有帮助,但我不知道如何将该设置传递到上面的代码中(或者如果这是正确的解决方案): 这是例外,请帮忙 Exception Details: System.Net.WebEx

有时,当通过URL读取XML时,会出现超时异常。我可以做些什么来防止这种情况发生,或者这是远程服务器的问题吗?下面是我的简单代码:

XmlDocument doc = new XmlDocument();
doc.Load(XmlReader.Create(this.RssUrl));
我看到一篇帖子说KeepAlive可能会有帮助,但我不知道如何将该设置传递到上面的代码中(或者如果这是正确的解决方案):

这是例外,请帮忙

Exception Details: System.Net.WebException: The operation has timed out
Stack Trace: 

[WebException: The operation has timed out]
   System.Net.HttpWebRequest.GetResponse() +5375213
   System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials) +69
   System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials) +3929371
   System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) +54
   System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings, XmlParserContext inputContext) +144
   System.Xml.XmlReader.Create(String inputUri) +8

我之前遇到过这个问题,发现了这个没有答案的问题。我发现的一个选项是完全防止请求超时,您可以创建自己的请求并将其传递到XmlReader

WebRequest request = WebRequest.Create(this.RssUrl);
request.Timeout = Timeout.Infinite;

using (WebResponse response = request.GetResponse())
using (XmlReader reader = XmlReader.Create(response.GetResponseStream()))
{
    // Blah blah...
}
如果使用HttpWebRequest,也可以设置KeepAlive,尽管默认情况下它实际上是true,所以它不会有任何区别

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(this.RssUrl);
request.KeepAlive = true;

嗨,法拉,我使用了你发布的,但我仍然得到这个错误。