簡體   English   中英

StreamReader 問題

[英]StreamReader issues

我早些時候試圖破壞我新制作的 servlet,結果破壞了我自己的應用程序,我真希望我現在沒有打擾!

response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream());
String streamedXML = reader.ReadToEnd(); // 
XmlDocument doc = new XmlDocument();
doc.LoadXml(streamedXML);

If i open up 10 windows or so, then rapidly request data from my servlets (this is the same 10 windows, returning the same data) then i get an xml exception being thrown;

Unexpected end of file has occurred. The following elements are not closed:

問題是,如果我一次運行這個,或者請求之間有很大的差距,那么如果完成就好了。 這是因為我的流媒體閱讀器被請求壓倒並在其他人完成之前開始新的請求嗎? 如果是這樣,是否有更好的方法來寫入這些數據?

謝謝。

您可以嘗試修復此代碼或將其留給專家並使用 WebClient:

using (var client = new WebClient())
{
     string streamedXML = client.DownloadString(sourceUrl);
     ...

}

我個人會使用 XDocument 而不是 XmlDocument,但這取決於。

StreamReader 並沒有被淹沒。 (它只能阻止或引發 IO 異常/超出 Memory 異常)

但是,它正在與之交談的服務器似乎不堪重負。

使用fiddler或在服務器日志中查找

你可以從正確處理所有東西開始,看看是否有幫助:

using(response = (HttpWebResponse)request.GetResponse())
using(reader = new StreamReader(response.GetResponseStream()))
{
    String streamedXML = reader.ReadToEnd(); // 
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(streamedXML);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM