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.NET Discussion :

Passer une commande DOS par CodeBehind


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Passer une commande DOS par CodeBehind
    Bonjour à tous

    J'ai cherche à passer une commande DOS par le CodeBehind mais je bloque et je comprends pas pourquoi.

    J'ai trouvé la commande qui envoi les info (apparement) et j'apondu ce code simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim proc As New System.Diagnostics.Process
            proc.Start("C:\\Windows\\System32\\inetsrv\\appcmd set site /site.name:""Default Web Site"" /+bindings.[protocol='http',bindingInformation='192.168.0.10:80:www.test.maison']")
    Mais là il me dit :
    Le fichier spécifié est introuvable
    Hors, si je passe cette commande en fenêtre de commande, ça marche.

    Du coup, je comprends pas où je me suis planté.

    Vous pouvez m'aider ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Par défaut
    Si tu ne mets pas de backslash quand tu mets des guillemets, ça te ferme ton string et t'en ouvre un autre, mais ça ne devrait même pas compiller normalement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    proc.Start("C:\\Windows\\System32\\inetsrv\\appcmd set site /site.name:\"Default Web Site\" /+bindings.[protocol='http',bindingInformation='192.168.0.10:80:www.test.maison']")

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    J'ai modifié mon code pour passer dasn arguments à la commande. J'ai vu ça sur un forum et je me suis dit que c'était plus propre.
    J'ai donc appliqué ce que tu dis mais cela e fonctionne pas il dit qu'il atten le fin d'une instruction.

    Par contre, lorsque je fais un Response.Write de ma chaine args j'ai la bonne chaine avec les guillemets là où il faut.

    Voici le code où j'en suis, il est palce sur le click d'un bouton dans une page vide :
    Try
    Dim args As String = "set site /site.name:""Default Web Site"" /+bindings.[protocol='http',bindingInformation='192.168.0.10:80:www.test.maison']"
    Dim proc As New Diagnostics.Process()
    proc.StartInfo.UserName = "Administrateur"
    proc.Start("C:\\Windows\\System32\\inetsrv\\appcmd.exe", args)

    Catch ex As Exception
    Logage(ex.Message)
    Response.Write(ex.Message)
    End Try
    J'ai ajouté le proc.UserName parce que j'ai découvert que cette comande ne fonctionnait qu'en mode admiinstrateur.

    Et pour l'instant, je n'ai rien : pas de mesasge d'erreur, pas de liaison dans IIS, rien du tout.

    Je ne sais plus quoi faire.

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    J'ai planché pas mal la semaine dernière et je suis toujours bloqué.

    Mon code actuel est le suivant :
    Code : 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
     
      Protected Sub btnTest_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnTest.Click
            Try
                Dim proc As New Diagnostics.Process()
                With proc
                    .StartInfo.FileName = "C:\\Windows\\System32\\inetsrv\\appcmd.exe"
                    .StartInfo.Arguments = "set site /site.name:""Default Web Site"" /+bindings.[protocol='http',bindingInformation='192.168.0.10:80:www.test.maison']"
                    '.StartInfo.FileName = "d:\\hello.bat"
                    '.StartInfo.Arguments = "logservice.txt"
     
                    .StartInfo.UseShellExecute = False
                    .Start()
                    .WaitForExit()
                End With
            Catch ex As Exception
                Logage(ex.Message)
                Response.Write(ex.Message)
            End Try
        End Sub
    J'ai laissé deux lignes en commentaire que j'avais pris pour tester.
    Le BAT hello.bat prend un fichier et le copie dans un répertoire, l'argument est le nom du fichier et tout se passe bien.

    Lorsque je lance la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:""Default Web Site"" /+bindings.[protocol='http',bindingInformation='192.168.0.10:80:www.test.maison']
    tout se passe bien et ma liaison est ajoutée.

    Par contre lorsque je lance en cliquant sur le bouton dans ma apge, il ne se passe rien :
    - pas de liaison ajoutée
    - pas de message d'erreur sur la page
    - pas de message d'erreur dans mon fichier de log

    Bref, je suis complètement paumé.

    Vous avez une idée ?

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Est ce que l'utilisateur Iuser a les droits pour excécuter ton fichier ?

  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    A vrai dire, j'en sais rien et en plus, je ne sais même pas comment vérifier.
    Mais s'il n'avait pa les droits, je n'aurais pas un message d'erreur ?

    Je vais essayer de trouver comment vérifier ces droits, mais je suis nul en système

Discussions similaires

  1. Réponses: 13
    Dernier message: 15/10/2008, 17h20
  2. Passer une variable DOS au FTP en ligne de commande
    Par karl3i dans le forum Windows
    Réponses: 3
    Dernier message: 14/11/2006, 13h33
  3. Réponses: 3
    Dernier message: 22/10/2004, 12h04
  4. [Debutant(e)][Système]Executer une commande DOS
    Par iceman dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 18/05/2004, 14h30
  5. [VB6] probleme de redirection d'une commande DOS
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 09h36

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