我使用System.Xml.XmlDocument加载文件,然后等待一分钟引发超时错误。奇怪的是,代码可以在另一个项目中工作。
XmlDocument.LoadXml()也会引发错误。
System.Xml.XmlDocument doc = new XmlDocument();
doc.Load(@"D:\work\xxx.svg");
添加:
我看到了堆栈跟踪信息,它是WebException,错误代码为System.Net.HttpWebRequest.GetResponse()。
因此XmlDocument.Load()方法将我的文件路径视为url,但是我不明白为什么它可以在另一个项目中工作
答案 0 :(得分:2)
我遵循了堆栈跟踪,发现了问题:
[XmlException:打开外部DTD “ http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”:发生错误 而操作超时。 ]
然后我添加XMLreaderSetting:
XmlDocument xmlDoc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Ignore;
XmlReader reader = XmlReader.Create(@"D:\\111.txt", settings);
xmlDoc.Load(reader);
他们完成工作。
但是我很好奇为什么在另一个项目中没问题。
我希望这个答案可以帮助另一个遇到同样困难的人。