2010-11-11 10 views
11

J'ai un code javascript très simple,ActiveXObject Erreur de création « serveur Automation ne peut pas créer l'objet »

<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> 

qui créent un objet activeX pour exécuter notepad.exe, si je sauvegarde dans une version HTML brut et exécutez-le dans l'IE, il fonctionne bien ouvrir le bloc-notes, mais si je l'insère dans une page aspx et l'exécuter, il donnera une erreur appelée "serveur Automation ne peut pas créer d'objet", je l'ai googlé à plusieurs reprises, mais les choses de sécurité IE que j'ai déjà fait et je pense que c'est quelque chose dans ASP ou IIS que je ne pouvais pas comprendre.

Vos suggestions et suggestions sont très appréciables.

Thanx

+0

N'a rien à voir avec IIS ou le côté serveur en général, semble que les gars .NET blâment toujours IIS ou le code serveur quand il s'agit de problèmes de navigateur. :) Suppression des bad tags. – epascarello

+0

mais je pense à peine que c'est un problème de navigateur, puisque je peux exécuter le même code quand il est inclus dans un code html normal, que j'ai déjà mentionné dans le problème. c'est pourquoi je suppose que c'est un problème autre que la sécurité du navigateur – Asanka

Répondre

5

Eh bien, vous ne pouvez pas exécuter du code à partir du bloc-notes, ce qui signifie que vous ouvrez la page à partir du système de fichiers. alias c: /foo/bar/hello.html

Lorsque vous exécutez le code à partir de la page asp.net, vous l'exécutez depuis localhost. aka http://loalhost:1234/assdf.html

Chacun d'entre eux s'exécute dans différentes zones de sécurité sur IE.

11

Pour cela fonctionne, vous devez vraiment, desserrer vraiment vos paramètres de sécurité (généralement pas recommandé)

Vous devez ajouter le site à votre « zone de confiance », puis allez dans la paramètres personnalisés (faites défiler environ 1/2 vers le bas de la page) et modifiez:

Contrôles ActiveX et plugins - Activer (ou l'invite) ... l'un des paramètres qui s'appliquent à votre code (je pense que le dernier - "Commandes ActiveX de script marquées comme sûres pour scri Tout cela dit, à moins que vous ayez vraiment une très bonne raison de le faire - vous ouvrez un grand trou dans la sécurité de votre navigateur ... et faites très attention ... et faire pas attendre que les autres utilisateurs finaux seront prêts à faire de même.

+0

oui, mais j'ai déjà activé ces paramètres (c'est pourquoi le contrôle activex de la page html normale fonctionne bien, comme je l'ai mentionné dans la question ...), ce problème se produit lorsque j'insère ce script dans une page aspx qui se trouve sous IIS. des idées? ... – Asanka

+3

@Asanka - Comme mentionné par @epascarello, il n'y a rien dans l'extrait de code qui serait affecté par le serveur web/application que vous utilisez. Si la sortie de la balise de script arrive au code HTML comme indiqué ci-dessus, alors qu'elle s'exécute correctement est ** entièrement ** dépendante du navigateur. Vous obtiendrez l'erreur "impossible de créer" si le script s'exécute ... mais vous ne pouvez pas créer l'objet ActiveX. Il ne devrait y avoir que 2 raisons pour lesquelles vous ne pouvez pas ... 1.) le type d'objet n'existe pas (par exemple une faute de frappe dans le nom) ou 2.) vous n'avez pas les permissions pour * cet * utilisateur, sur * ce * site, dans * cette * zone. – scunliffe

1

J'ai le même problème, il a résolu en enregistrant la dll

à propriétés du projet => construis => vous inscrire à COM Interop => vérifier

6

j'ai aussi même problème et le résoudre. S'il vous plaît passer par le lien

ajouter votre site à la zone de confiance et modifier les options suivantes à savoir Menu Outils -> Options Internet -> Sécurité -> Personnaliser le niveau -> « initialisation et de script ActiveX non marqués comme sécurisés pour le script "

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

19

Ceci est causé par les paramètres de sécurité pour Internet explorer. Vous pouvez résoudre ce problème en modifiant les paramètres d'Internet Explorer. Accédez à Paramètres-> Options Internet-> Onglets de sécurité. Vous verrez différentes zones: i) Internet ii) Intranet local iii) Sites de confiance iv) Sites restreints. En fonction de vos besoins, sélectionnez une zone. J'utilise mon application dans localhost, j'ai donc sélectionné Intranet local, puis cliquez sur le bouton Personnaliser le niveau. Il ouvre la fenêtre des paramètres de sécurité. Activez l'option Initialiser et les contrôles ActiveX de script non marqués comme sûrs pour l'option de script. Cela devrait fonctionner.

enter image description here

enter image description here

0

Cette erreur est causée par des embrayages de sécurité entre l'application web et votre java. Pour le résoudre, examinez votre paramètre java sous le panneau de configuration. Déplacez le niveau de sécurité sur un support.