if (webBrowser1.DocumentText.IndexOf("Page: 1") != -1)
在上面一行我得到了这个例外
这是什么意思?我昨天没有得到这个错误并且今天得到它。网页打开没有问题,文本System.IO.FileNotFoundException是 未处理的消息=“系统不能 找到指定的文件。 (例外 来自HRESULT:0x80070002)“
来源= “System.Windows.Forms的”
堆栈跟踪: 在System.Windows.Forms.UnsafeNativeMethods.IPersistStreamInit.Save(IStream) pstm,Boolean fClearDirty) 在System.Windows.Forms.WebBrowser.get_DocumentStream() 在System.Windows.Forms.WebBrowser.get_DocumentText() 在WindowsFormsApplication1.Form1.GenerateETGWorklists() 在C:\ Documents和 设置\ agordon \ My Documents \ Visual 工作室 2008 \项目\ GenerateWorklists \ GenerateWorklists \ Form1.cs中:行 603 在WindowsFormsApplication1.Form1.btnProcess_Click(对象 发件人,EventArgs e)在C:\ Documents中 和设置\ agordon \我的 Documents \ Visual Studio 2008 \项目\ GenerateWorklists \ GenerateWorklists \ Form1.cs中:行 55 在System.Windows.Forms.Control.OnClick(EventArgs E) 在System.Windows.Forms.Button.OnClick(EventArgs E) 在System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 在System.Windows.Forms.Control.WmMouseUp(消息& m,MouseButtons按钮,Int32点击) 在System.Windows.Forms.Control.WndProc(消息& M) 在System.Windows.Forms.ButtonBase.WndProc(Message& M) 在System.Windows.Forms.Button.WndProc(Message& M) 在System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& M) 在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& M) 在System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr LPARAM) 在System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& MSG) 在System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32) dwComponentID,Int32原因,Int32 pvLoopData) 在System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32) 原因,ApplicationContext上下文) 在System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32) 原因,ApplicationContext上下文) 在System.Windows.Forms.Application.Run(Form MainForm的) 在WindowsFormsApplication1.Program.Main() 在C:\ Documents和 设置\ agordon \ My Documents \ Visual 工作室 2008 \项目\ GenerateWorklists \ GenerateWorklists \的Program.cs:行 18 在System.AppDomain._nExecuteAssembly(程序集 assembly,String [] args) 在System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String [] args) 在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在System.Threading.ThreadHelper.ThreadStart_Context(Object 州) 在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在System.Threading.ThreadHelper.ThreadStart() 的InnerException:
Page: 1
肯定存在。
这是一个类似的问题,也没有解决方案 http://bytes.com/topic/c-sharp/answers/657812-webbrowser-documenttext-getting-problem
答案 0 :(得分:1)
这是一个已知的错误,微软至少没有为vs2008做任何事情。这是一个修复:
String lastsource = ((mshtml.HTMLDocumentClass)(((webBrowser1.Document.DomDocument)))).documentElement.innerHTML;
webBrowser1.Document.OpenNew(true);
webBrowser1.Document.Write(lastsource);
现在我们可以毫无问题地访问DocumentText
不要忘记导入mshtml
作为参考
答案 1 :(得分:0)
尝试webBrowser1.Document.Body.InnerText
。
答案 2 :(得分:0)
当我从网上加载页面时,我也发现Web浏览器控件引发了与文件访问相关的异常,这一点很奇怪。
在研究这个时,我注意到一些奇怪的事情: 最近清除了临时互联网文件后,这种错误就不那么常见了。
我修改了我的应用程序,以便在应用程序启动时自动清除临时Internet文件,这足以解决90%的错误。
我清理临时互联网文件的代码如下......我认为这不适用于所有操作系统 - 可能有更好的方法 - 但这符合我的需求,因为它适用于Server 2008。
(我的代码在vb.net中,但c#版本不应该太难理解。)
'start cleaning the temporary internet files
Dim clearFilesProcess As Process = System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 255")
'wait for the temporary internet files to be deleted
While Not (clearFilesProcess.HasExited)
System.Threading.Thread.Sleep(200)
End While