gpt4 book ai didi

c# - ASP.Net 尝试读取 xml 文件时, "An operation was attempted on a nonexistent network connection"

转载 作者:可可西里 更新时间:2023-11-01 08:48:41 28 4
gpt4 key购买 nike

string url = "http://www.example.com/feed.xml";
var settings = new XmlReaderSettings();
settings.IgnoreComments = true;
settings.IgnoreProcessingInstructions = true;
settings.IgnoreWhitespace = true;
settings.XmlResolver = null;
settings.DtdProcessing = DtdProcessing.Parse;
settings.CheckCharacters = false;
var request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 900000;
request.KeepAlive = true;
request.IfModifiedSince = lastModified;
var response = (HttpWebResponse)request.GetResponse();
Stream stream;
stream = response.GetResponseStream();
stream.ReadTimeout = 600000;
var xmlReader = XmlReader.Create(stream, settings);

while (!xmlReader.EOF)
{
...

当我在一个大型 xml 文件(下载速度也非常慢)上尝试此操作时,我的 azure Web 应用程序在几分钟后会抛出一个空白页面。

我在 Azure 的失败请求跟踪日志中看到了这一点:

ModuleName: DynamicCompressionModule

Notification: SEND_RESPONSE

HttpStatus: 500

HttpReason: Internal Server Error

HttpSubStatus: 19

ErrorCode: An operation was attempted on a nonexistent network connection. (0x800704cd)

如您所见,我一直在“玩弄”超时设置。还 try catch 所有异常,但没有捕获任何异常。

此外,在我的计算机上本地调试 Web 应用程序时,这也没有问题。可能是我办公室的互联网连接比 Azure 的好,导致 xml 文件读取速度很快,没有任何问题。

有什么可能的解决方法吗?编辑:我想继续流式传输 XML 文件(我避免下载整个文件,因为用户可以选择仅读取提要的前 N ​​个条目)。如果上述问题无法避免,如果有人可以帮助我至少向用户显示有意义的消息,而不是空白页面,我会很高兴。

最佳答案

尝试使用 WebClient 类来获取 xml 文件。

string xmlAsString;
using (var xmlWebClient = new WebClient())
{
xmlWebClient.Encoding = Encoding.UTF8;
xmlAsString = xmlWebClient.DownloadString(url);
}

XmlDocument currentXml = new XmlDocument();
currentXml.Load(xmlAsString);

关于c# - ASP.Net 尝试读取 xml 文件时, "An operation was attempted on a nonexistent network connection",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33812882/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com