保存 outerHTML 会导致 System.OutOfMemoryException
本文关键字:System OutOfMemoryException outerHTML 保存 | 更新日期: 2023-09-27 18:30:58
我正在尝试使用 c# 保存 HTML 页面webBrowser
var doc = webBrowser1.Document.DomDocument as mshtml.HTMLDocument;
string s1 = doc.documentElement.outerHTML;
我得到这个异常:
An unhandled exception of type 'System.OutOfMemoryException' occurred in texas project.exe
Additional information: Could not get the outerHTML property. Not enough storage is available to complete this operation.
为什么在不同的运行中我有时会得到它? 以及如何保存页面而没有此异常?
在不同的运行中,您的虚拟内存利用率不同,因此这就是应用程序仅在某些情况下耗尽内存的原因。要了解导致应用程序超出限制的确切原因,我建议使用一个好的内存分析器进行分析。也许您的应用程序中还有其他内容泄漏内存并导致问题。
如果您的唯一目标是获取文档字符串而不是遍历文档,则可能不需要通过 DomDocument API 访问文档。
我建议使用 WebBrowser.DocumentText
属性将整个文档作为字符串获取:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documenttext%28v=vs.110%29.aspx
还有一个WebBrowser.DocumentStream
属性,以防您想分块读取文档,将其作为流通过网络发送等:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documentstream%28v=vs.110%29.aspx