2010-02-09 8 views
8

Sto sviluppando un pulsante di comando di Internet Explorer che aprirà una pagina Web specifica dopo aver fatto clic. Ecco un frammento di codice (IEApp è un riferimento a un'istanza di IE.WebBrowser):WebBrowser.Navigate (...) genera COMException

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

La linea di cui sopra genera la seguente 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 

questo non era un problema su IE6 o IE7. Qualche idea su cosa sta andando male? Sto usando AddInExpress per creare il pulsante di comando.

Cheers! Christian

+0

Puoi eseguire la tua app con Fiddler? Questa discussione (http://forums.iis.net/t/1146952.aspx) suggerisce che il problema potrebbe non essere sul lato client e che potresti recuperare un HTTP 500 dal server. –

+0

Sfortunatamente, non c'è attività da vedere in Fiddler. Ma il messaggio di errore è quasi istantaneo. Inoltre, sono curioso di sapere cosa significa "La risorsa richiesta è in uso". Vedo che la proprietà busy è vera, ma il browser non sta facendo nulla. – ChrispedDK

+1

Potrebbe essere il problema citato [qui] (http://stackoverflow.com/a/20612526/238419) –

risposta

5

Questo è ERROR_BUSY di solito accade quando IE sta facendo qualcos'altro, ad es. visualizzazione di una finestra di messaggio window.alert.
errori di script Try reprimere e implementare IDocHostShowUI e restituire S_OK senza bloccare la pompa messaggio

+1

L'URL corrente riguarda about: blank, anche quando si controlla la proprietà su IE.WebBrowser quindi non penso in realtà sta facendo qualsiasi cosa. – ChrispedDK

+0

qual è il valore di ritorno di IWebBrowser2 :: get_ReadyState –

+1

provare fermare la navigazione corrente (se davvero vuole fermare quando la pagina non viene completata carico) o aggiungere la navigazione a una coda di richieste e di utilizzare un timer per attendere IWebBrowser2 :: get_Busy restituisce falso. –

1

potrebbe questo aiuto: disattivando UAC in Windows, se si utilizza una versione di tipo server:

screen-spara qui: http://blog.vincentbrouillet.com/post/2011/02/10/watin%3A-The-requested-resource-is-in-use

Ho avuto questo errore ed è stato abbastanza casuale. Ho provato a uccidere IE prima di eseguire i test. È un tipo di lavoro, ma non sempre.

+1

Nah, impossibile chiedere ai client di disabilitare UAC. Vedi la mia soluzione qui sotto. – ChrispedDK

+0

@ChrispedDK: Sto anche alla ricerca di una soluzione per questo problema – anand