我之前试图破坏我新创建的servlet,结果破坏了我自己的应用程序,我有点希望我现在没有烦恼!
response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream());
String streamedXML = reader.ReadToEnd(); //
XmlDocument doc = new XmlDocument();
doc.LoadXml(streamedXML);如果我打开大约10个窗口,然后从servlet中快速请求数据(这是相同的10个窗口,返回相同的数据),那么我就会抛出一个xml异常;
Unexpected end of file has occurred. The following elements are not closed:问题是,如果我一次运行这一次,或者请求之间有很大的差距,那么如果完成的很好。这是因为我的流读取器被请求过多地添加到中,并在其他请求完成之前启动新的请求?如果是的话,是否有更好的方法来编写这些数据?
谢谢。
发布于 2011-07-04 15:22:45
您可以尝试修复此代码,或者将其留给专家使用WebClient:
using (var client = new WebClient())
{
string streamedXML = client.DownloadString(sourceUrl);
...
}就我个人而言,我会使用XDocument而不是XmlDocument,但这要看情况而定。
发布于 2011-07-04 15:21:52
StreamReader并没有不知所措。(它只能阻止或引发IO异常/内存不足异常)
然而,它与之交谈的服务器似乎不堪重负。
使用费德勒或在服务器日志中查找
发布于 2011-07-04 15:24:03
首先,您可以正确地处理所有内容,看看这是否有帮助:
using(response = (HttpWebResponse)request.GetResponse())
using(reader = new StreamReader(response.GetResponseStream()))
{
String streamedXML = reader.ReadToEnd(); //
XmlDocument doc = new XmlDocument();
doc.LoadXml(streamedXML);
}https://stackoverflow.com/questions/6573328
复制相似问题