|
分類:[VB.NET/VB2005 以降]
言語:VB2013
WebBrowser(IE11モードで実行)を使用した自作ツール(x86ビルド)を使っていて、 困ったことが出てきました。 Windows7(32bit)上でこのツールを動かし、あるWebページ(HTML)を ツール内のWebBrowserに読み込んだ後、
Dim bodyHtml As String = WebBrowser1.Document.Body.InnerHtml
を実行すると、ここで
System.OutOfMemoryException: プログラムの実行を続行するための十分なメモリがありませんでした。
という例外が発生しました。
確かにこのページは重いようで、WebBrowserでもIEでも表示に時間がかかっていました。 タスクマネージャーで確認したところ、WebBrowserで対象ページをNavigate後、 このプロセスのメモリの値がどんどん増加し、 メモリの値が1400MBを超える所まで行きますが、 ブラウザ上のページ表示が完了したときは1000MB程度となりました。 この状態でBodyのInnerHtmlを取得しようとすると例外が発生します。
なお、Windows10(64bit)上でこのツールで同様のことを行うと、 タスクマネージャーの本プロセルのメモリの値は最終的には700MB程度に落ち着き、 この状態ではBodyのInnerHtml取得に成功します。
最低でも、BodyのInnerHtmlが取得出来て、これをテキストファイルに保存できれば、 別プロセスでこのテキストファイルを処理するようにしようと考えていますが、 OutOfMemoryExceptionが発生しないようにBodyのInnerHtmlの情報を得る方法はないでしょうか?
よろしくお願いします。
|