for - c#filenotfoundexception en webbrowser?
webbrowser c# ejemplo (3)
Pruebe webBrowser1.Document.Body.InnerText
.
if (webBrowser1.DocumentText.IndexOf("Page: 1") != -1)
en la línea de arriba estoy recibiendo esta excepción
System.IO.FileNotFoundException no se ha manejado Mensaje = "El sistema no puede encontrar el archivo especificado. (Excepción de HRESULT: 0x80070002)"
Fuente = "System.Windows.Forms"
StackTrace: en System.Windows.Forms.UnsafeNativeMethods.IPersistStreamInit.Save (IStream pstm, Boolean fClearDirty) en System.Windows.Forms.WebBrowser.get_DocumentStream () en System.Windows.Forms.WebBrowser.get_DocumentText () en WindowsFormsApplication1.Form1. GenerateETGWorklists () en C: / Documents and Settings / agordon / Mis documentos / Visual Studio 2008 / Projects / GenerateWorklists / GenerateWorklists / Form1.cs: línea 603 en WindowsFormsApplication1.Form1.btnProcess_Click (Object remitente, EventArgs e) en C: / Documents y Configuración / agordon / Mis documentos / Visual Studio 2008 / Projects / GenerateWorklists / GenerateWorklists / Form1.cs: línea 55 en System.Windows.Forms.Control.OnClick (EventArgs e) en System.Windows.Forms.Button.OnClick (EventArgs e) en System.Windows.Forms.Button.OnMouseUp (MouseEventArgs mevent) en System.Windows.Forms.Control.WmMouseUp (Message & m, botón MouseButtons, clics Int32) en System.Windows.Forms.Control.WndProc (Message & m) en System.Windows.Forms.ButtonBase.WndProc (Message & m) en System.W indows.Forms.Button.WndProc (Message & m) en System.Windows.Forms.Control.ControlNativeWindow.OnMessage (Message & m) en System.Windows.Forms.Control.ControlNativeWindow.WndProc (Message & m) en System.Windows.Forms. NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW (MSG y msg) en System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager .FPushMessageLoop (Int32 dwComponentID, Int32 reason, Int32 pvLoopData) en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner (Int32 reason, ApplicationContext context) en System.Windows.Forms.Application.ThreadContext.RunMessageLoop (Int32 reason, ApplicationContext context) en System.Windows.Forms.Application.Run (Form mainForm) en WindowsFormsApplication1.Program.Main () en C: / Documents and Settings / agordon / Mis documentos / Visual Studio 2008 / Projects / GenerateWorklists / GenerateWorklists / Program.cs: línea 1 8 en System.AppDomain._nExecuteAssembly (Assembly assembly, String [] args) en System.AppDomain.ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String [] args) en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly () en System.Threading .ThreadHelper.ThreadStart_Context (estado del objeto) en System.Threading.ExecutionContext.Run (ExecutionContext executionContext, devolución de llamada ContextCallback, estado Object) en System.Threading.ThreadHelper.ThreadStart () InnerException:
¿Cuál es el significado de este? no recibí este error ayer y lo recibí hoy. la página web no abre ningún problema y la Page: 1
texto Page: 1
está definitivamente allí.
aquí hay un problema similar también sin solución http://bytes.com/topic/c-sharp/answers/657812-webbrowser-documenttext-getting-problem
este es un error conocido y Microsoft no hace nada al respecto para el año 2008 como mínimo. aquí hay una solución:
String lastsource = ((mshtml.HTMLDocumentClass)(((webBrowser1.Document.DomDocument)))).documentElement.innerHTML;
webBrowser1.Document.OpenNew(true);
webBrowser1.Document.Write(lastsource);
ahora podemos acceder a DocumentText
sin problemas
no te olvides de importar mshtml
como referencia
También me pareció extraño que el control del navegador web lanzara una excepción relacionada con el acceso a archivos, cuando estaba cargando una página desde la web.
Al analizar esto, noté algo extraño: este error es mucho menos común cuando los archivos temporales de Internet se han borrado recientemente.
Modifiqué mi aplicación para que borre automáticamente los archivos temporales de Internet cuando se inicia la aplicación, lo cual fue suficiente para resolver el 90% de estos errores.
Mi código para limpiar los archivos temporales de Internet está debajo ... No creo que esto funcione en todos los sistemas operativos, puede haber una forma mejor, pero esto se ajusta a mis necesidades porque funciona en Server 2008.
(mi código está en vb.net, pero la versión c # no debería ser demasiado difícil de descifrar).
''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