2010-02-09 14 views
8

Estoy desarrollando un botón de comando de Internet Explorer que abrirá una página web específica una vez que se haga clic. He aquí un fragmento de código (IEApp es una referencia a una instancia de IE.WebBrowser):WebBrowser.Navigate (...) arroja COMException

IEApp.Navigate(sURL, ref one, ref two, ref three, ref four); 

La línea anterior arroja el siguiente COMException:

Exception Source:  Interop.SHDocVw 
Exception Type:  System.Runtime.InteropServices.COMException 
Exception Message:  The requested resource is in use. (Exception from HRESULT: 0x800700AA) 
Exception Target Site: Navigate 

Esto no fue un problema en IE6 o IE7. ¿Alguna idea sobre lo que está mal? Estoy usando AddInExpress para crear el botón de comando.

¡Salud! Christian

+0

¿Puedes ejecutar tu aplicación con Fiddler? Este hilo (http://forums.iis.net/t/1146952.aspx) sugiere que el problema puede no estar en el lado del cliente y es posible que esté recibiendo un HTTP 500 del servidor. –

+0

Desafortunadamente, no hay actividad para ser visto en Fiddler. Pero el mensaje de error es casi instantáneo. Además, tengo curiosidad sobre lo que implica "El recurso solicitado está en uso". Puedo ver que la propiedad ocupada es verdadera, pero el navegador realmente no está haciendo nada. – ChrispedDK

+1

Podría ser el problema mencionado [aquí] (http://stackoverflow.com/a/20612526/238419) –

Respuesta

5

Eso es ERROR_BUSY generalmente ocurre cuando IE hace otra cosa, p. mostrando un cuadro de mensaje window.alert.
Intenta eliminar los errores de secuencia de comandos e implementar IDocHostShowUI y S OK regresar sin bloquear el suministro de mensajes

+1

La URL actual se trata de: en blanco, también cuando se comprueba la propiedad en el IE.WebBrowser, así que no creo en realidad está haciendo cualquier cosa. – ChrispedDK

+0

cuál es el valor de retorno de IWebBrowser2 :: get_ReadyState –

+1

intente detener la navegación actual (si de verdad desea detenerla cuando la página no se haya completado) o agregue la navegación a una cola de solicitud y use un temporizador para esperar IWebBrowser2 :: get_Busy devuelve falso. –

1

podría esto ayuda: apagar UAC en Windows, si está utilizando un servidor de la versión tipo:

pantalla vástagos aquí: http://blog.vincentbrouillet.com/post/2011/02/10/watin%3A-The-requested-resource-is-in-use

Tuve este error, y fue bastante aleatorio. Traté de matar IE antes de ejecutar las pruebas. Es un poco trabajo, pero no todo el tiempo.

+1

Nah, no se puede pedir a los clientes que desactiven el UAC. Vea mi solución a continuación. – ChrispedDK

+0

@ChrispedDK: también estoy buscando una solución para este problema – anand

Cuestiones relacionadas