我正在尝试使用c#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.
为什么在不同的跑步中我有时会得到它?以及如何在没有此例外的情况下保存页面?
答案 0 :(得分:0)
在不同的运行中,您具有不同的虚拟内存利用率,因此这就是应用程序仅在某些情况下内存不足的原因。要知道究竟是什么导致应用程序超过限制,我建议使用良好的内存分析器进行分析。也许你的应用程序中还有其他东西正在泄漏内存并导致问题。
如果你的唯一目标是获取文档字符串,而不是遍历文档,那么通过DomDocument API访问文档可能是不必要的。
我建议使用WebBrowser.DocumentText
属性将整个文档作为字符串:
还有一个WebBrowser.DocumentStream
属性,以防您想要以块的形式读取文档,通过网络作为流发送它等等: