2010-11-11 15 views
11

Ho un codice javascript molto semplice,ActiveXObject Errore di creazione "server di automazione non può creare l'oggetto"

<script language="javascript">   
     function RunExe() 
     { 
      w = new ActiveXObject("WScript.Shell"); 
      w.run('notepad.exe'); 
      return true; 

     } 
</script> 
    <form id="form1"> 
    <div> 
     <input type="button" value="Run" onclick="return RunExe()" /> 
    </div> 
    </form> 

che creano un oggetto ActiveX per eseguire notepad.exe, se risparmio questo in un semplice HTML e eseguirlo nell'IE, funziona bene aprendo il blocco note, ma se inserisco questo in una pagina ASPX ed eseguirlo, verrà visualizzato un errore chiamato "Il server di automazione non può creare l'oggetto", l'ho cercato su Google molte volte, ma le cose di sicurezza di IE che ho già fatto e penso che sia qualcosa in ASP o IIS che non riuscivo a capire.

I vostri suggerimenti e input sono altamente apprezzabili.

Thanx

+0

Non ha nulla a che fare con IIS o il serveride in generale, sembra che i ragazzi di .NET incolpi sempre IIS o il codice serveride quando si tratta di problemi del browser. :) Tag difettosi rimossi. – epascarello

+0

ma non credo che sia un problema del browser, dal momento che posso eseguire lo stesso codice quando è incluso in un normale codice html, che ho già menzionato nel problema. è per questo che ho il sospetto che sia un problema diverso dalla sicurezza del browser – Asanka

risposta

5

Bene, non è possibile eseguire il codice dal blocco note in modo che si sta aprendo la pagina dal file system. alias c: /foo/bar/hello.html

Quando si esegue il codice dalla pagina asp.net, lo si esegue da localhost. alias http://loalhost:1234/assdf.html

Ognuno di questi viene eseguito in diverse zone di sicurezza su IE.

11

Per far funzionare tutto questo bisogna davvero, davvero allentare le impostazioni di sicurezza (generalmente sconsigliato)

Sarà necessario aggiungere il sito web per la tua "Trusted Zone", quindi andare in impostazioni personalizzate (scorrere circa 1/2 in basso sulla pagina) e modificare:

Controlli ActiveX e plug-in - Abilitare (o richiedere) ... qualsiasi impostazione applicabile al proprio codice (penso che sia l'ultima è quello che stai colpendo) - "script controlli ActiveX contrassegnati come sicuri per scri pting *"

Che tutti Detto questo, a meno che non si dispone di un molto, molto buona ragione per fare questo - si sta aprendo un importante 'buco' nel vostro browser di sicurezza ... passo con molta attenzione ... e fare non si aspetta che altri utenti finali siano disposti a fare lo stesso.

+0

sì, ma ho già abilitato quelle impostazioni (ecco perché il normale controllo ActiveX della pagina HTML funziona bene, come ho detto nella domanda ...), questo problema si verifica quando inserisco questo script in una pagina di aspx che risiede sotto IIS. qualche idea? ... – Asanka

+3

@Asanka - Come accennato da @epascarello non c'è nulla nel frammento di codice che potrebbe essere influenzato dal server web/app che stai utilizzando. Se l'output del tag script lo fa al codice HTML come hai indicato sopra, allora il fatto che venga eseguito correttamente è ** interamente ** dipendente dal browser. Si otterrà l'errore "impossibile creare" se lo script viene eseguito ... ma non è possibile creare l'oggetto ActiveX. Ci dovrebbero essere solo 2 ragioni per le quali non puoi ... 1.) il tipo di oggetto non esiste (es. Un refuso nel nome) o 2.) non hai permessi per * questo * utente, su * questo * sito, in * questa * zona. – scunliffe

1

Ho lo stesso problema, risolto registrando il dll

alla proprietà del progetto => costruisco => Registra per interoperabilità COM => controllare

6

ho anche lo stesso problema e risolverlo. prega di passare attraverso il link

aggiungere il tuo sito a zona attendibile e cambiare seguenti opzioni cioè menu Strumenti -> Opzioni Internet -> Protezione -> Livello personalizzato -> "inizializzare e script controlli ActiveX non contrassegnati come sicuri per lo scripting "

http://forums.codeguru.com/showthread.php?t=256114

19

questo è causato dalle impostazioni di protezione per Internet Explorer. È possibile risolvere questo problema, modificando le impostazioni di Internet Explorer. Vai a Impostazioni-> Opzioni Internet-> Schede sicurezza. Saranno visualizzate diverse zone: i) Internet ii) Intranet locale iii) Siti attendibili iv) Siti con restrizioni. A seconda delle tue esigenze, seleziona una zona. Sto facendo funzionare la mia applicazione in localhost, quindi ho selezionato Intranet locale e poi faccio clic sul pulsante Livello personalizzato. Apre la finestra delle impostazioni di sicurezza. Abilitare Initialize e script Controlli Activex non contrassegnati come sicuri per l'opzione di script. Dovrebbe funzionare.

enter image description here

enter image description here

0

Questo errore è causa di frizioni di sicurezza tra l'applicazione Web e il Java. Per risolverlo, controlla le impostazioni java sotto il pannello di controllo. Sposta il livello di sicurezza su un supporto.

Problemi correlati