IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Lancer une application depuis page asp


Sujet :

ASP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 848
    Points : 249
    Points
    249
    Par défaut Lancer une application depuis page asp
    bjr et bonne année à tous,
    Je souhaiterais depuis une page asp lancer une application Winodws Forms. J'ai écris cette petite procédure juste pour l'initialisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sub lancerApplication()
        On error resume next
    	dim adrot
        Set adrot=Server.CreateObject("Application Windows Forms")
    	If Err.Number <> 0 Then
          Response.Write "Erreur : " & Err.number & " " & Err.Description & ("<BR>")
        End If
    	On Error GoTo 0
    end sub
    et j'ai l'erreur suivante :

    Erreur : -2147221005 006~ASP 0177~Échec de Server.CreateObject~800401f3

    L'application est sur le répertoire du site ansi que la DLL qui va avec, mais à ce stade je ne pense pas que ça vienne de là car je ne fais que l'initialisation.

    Si quelqu'un a une idée MERCI

  2. #2
    Membre émérite Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 533
    Points : 2 405
    Points
    2 405
    Par défaut
    Bonsoir,
    Dans le contexte de ASP classique (ASP 3.0), il n'est pas possible d'utiliser directement une application Windows Forms ou une DLL qui n'est pas un composant COM enregistré. Voici une explication détaillée des problèmes rencontrés et des solutions possibles.

    Erreur rencontrée : 800401f3

    L'erreur 800401f3 survient généralement lorsque le ProgID fourni à Server.CreateObject n'est pas valide, soit parce que :

    1. L'objet spécifié (par exemple, "Application Windows Forms") n'est pas enregistré dans le registre Windows.
    2. L'objet n'est pas compatible avec COM.

    Dans ton cas, il semble que tu essayes d'utiliser une application ou une DLL non COM-compatible. ASP classique ne peut pas instancier un objet .NET ou une application Windows Forms directement.

    Solutions possibles

    1. Utiliser WScript.Shell pour lancer une application

    Si ton but est simplement de lancer une application depuis la page ASP, la méthode la plus simple est d'utiliser l'objet WScript.Shell.
    Voici un exemple de code ASP classique :
    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <%
    Sub lancerApplication()
        On Error Resume Next
        Dim shell
        Set shell = Server.CreateObject("WScript.Shell")
     
        If Err.Number = 0 Then
            ' Lancer l'application avec le chemin complet
            shell.Run "C:\chemin\vers\application.exe", 1, False
            Response.Write "Application lancée avec succès.<br>"
        Else
            Response.Write "Erreur : " & Err.Number & " - " & Err.Description & "<br>"
        End If
     
        On Error GoTo 0
        Set shell = Nothing
    End Sub
     
    lancerApplication()
    %>
    Explications :

    • WScript.Shell : Permet d'exécuter des commandes ou des applications.
    • Paramètres de Run :
      • 1 : L'application s'affiche dans une fenêtre normale.
      • False : La commande ne bloque pas l'exécution de la page ASP.

    Limitations :

    • L'application se lancera sur le serveur, pas sur le poste client.
    • Si l'application nécessite une interface graphique, elle sera invisible car ASP s'exécute dans un environnement non interactif.


    2. Enregistrer une DLL en tant que composant COM

    Si tu veux utiliser une DLL ou un composant .NET, tu dois la convertir en composant COM et l'enregistrer. Voici comment procéder :

    1. Créer une DLL COM-compatible :

      • Si la DLL est en .NET, elle doit être marquée comme COM-visible (voir explication précédente si nécessaire).
      • Une fois créée, utilise regasm.exe pour l'enregistrer.

    2. Enregistrer la DLL sur le serveur :

      • Assure-toi que la DLL est accessible au compte utilisateur sous lequel IIS s'exécute (IIS_IUSRS).
      • Utilise regsvr32.exe (pour DLL classiques) ou regasm.exe (pour DLL .NET) pour enregistrer le composant.

    3. Utiliser le ProgID dans ASP :



    3. Exécuter des commandes avec cmd.exe

    Si ton application peut être lancée via une commande, utilise cmd.exe pour exécuter la commande directement depuis ASP.
    Exemple :
    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <%
    Sub lancerApplication()
        On Error Resume Next
        Dim shell
        Set shell = Server.CreateObject("WScript.Shell")
     
        If Err.Number = 0 Then
            ' Exécuter une commande via cmd.exe
            shell.Run "cmd.exe /C C:\chemin\vers\application.exe", 0, False
            Response.Write "Commande exécutée.<br>"
        Else
            Response.Write "Erreur : " & Err.Number & " - " & Err.Description & "<br>"
        End If
     
        On Error GoTo 0
        Set shell = Nothing
    End Sub
     
    lancerApplication()
    %>




    Points importants

    1. Permissions utilisateur :

      • Assure-toi que le compte utilisateur sous lequel IIS s'exécute (IIS_IUSRS ou Network Service) a les permissions nécessaires pour exécuter l'application ou accéder aux fichiers requis.

    2. Sécurité :

      • Exécuter des applications depuis ASP peut présenter un risque de sécurité. Assure-toi que seules des commandes sûres peuvent être exécutées.

    3. Exécution côté serveur :

      • Tout ce qui est exécuté via ASP classique tourne sur le serveur. Si ton objectif est de lancer une application sur le poste client, ce n'est pas possible avec ASP.




    Édite:
    Je t'invite vraiment a passer en aspx avec visual studio community. Tu es encore au début de ta formation en ASP.

    Sur le forum VB.net tu auras pléthore d'internaute susceptible de t'aider, alors que moi je passe par là car jes sais que tu postes des questions ; mais je suis de toute évidence le seule.

    Asp3 est définitivement obsolètes.

Discussions similaires

  1. Comment lancer une application depuis un service ?
    Par bhf37 dans le forum Langage
    Réponses: 7
    Dernier message: 05/03/2009, 15h05
  2. Réponses: 3
    Dernier message: 31/08/2008, 17h33
  3. Lancer une application depuis une fenêtre gtk
    Par cyrilleG dans le forum GTK+ avec Python
    Réponses: 11
    Dernier message: 29/09/2007, 23h03
  4. Réponses: 9
    Dernier message: 11/01/2007, 22h23
  5. [VB.NET]Lancer une application depuis MonProg
    Par PM_calou dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/09/2006, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo