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 :

Application ASP.NET - Exécuter un .bat sur un serveur distant


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 23
    Points
    23
    Par défaut Application ASP.NET - Exécuter un .bat sur un serveur distant
    Bonjour à tous et à chacun,

    Comme dit dans le titre, je cherche à exécuter un fichier .bat sur un serveur lorsque je clique sur un bouton.
    Le problème est que j'arrive à exécuter le fichier, mais il le fait sur ma machine alors que je voudrais qu'il s'exécute sur le serveur directement.

    Voici le code behind :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.SqlClient;
    using System.Data.Sql;
    using System.Web.Security;
    using System.Data;
    using System.Configuration;
    using System.Diagnostics;
     
    namespace PortailRMN
    {
        public partial class ExecuteJobRaymark : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (_Default.Membership1.EtreConsultant(Context.User.Identity.Name) == true)
                {
                    Response.Redirect("Accueil.aspx");
                }
            }
     
            protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName == "Execute")
                {
                    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DWHConnectionString11"].ConnectionString))
                    {
                        con.Open();
                        int index = Convert.ToInt32(e.CommandArgument);
                        SqlCommand select = con.CreateCommand();
                        GridViewRow selectedRow = GridView1.Rows[index];
                        TableCell Job_PK = selectedRow.Cells[0];
                        string ID = Job_PK.Text;
                        SqlDataReader lire_select;
                        select.CommandText = "SELECT [JBI_JobFolder] FROM [msdb].[dbo].[D_JobRaymark] WHERE JBI_PK = '" + ID + "'";
                        lire_select = select.ExecuteReader();
     
                        //Condition qui vérifie si la requête retourne quelque chose (ligne/valeur)
                        if (lire_select.HasRows)
                        {
                            lire_select.Read();
                            string fichier = lire_select.GetValue(0).ToString();
                            string fichierBat = fichier + ".bat";
                            //Label1.Text = fichier;
                            //Label2.Text = fichierBat;
                            ProcessStartInfo fichierRun = new ProcessStartInfo(@"\\BDRAYMARKPREP2\d$\Interface\bat\" + fichierBat);
                            Process proRaymark = new Process();
     
                            fichierRun.UseShellExecute = true;
                            fichierRun.WorkingDirectory = @"\\BDRAYMARKPREP2\d$\Interface\bat\";
                            proRaymark = Process.Start(fichierRun);
                            lire_select.Close();
     
                        }
                    }
                }
            }
        }
    }
    Si vous avez bien compris, je cherche à définir l'emplacement d'où le programme va s'exécuter :/.

    Je vous remercie d'avance pour l'aide que vous pouvez m'apporter

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Up, c'est plutôt urgent, si quelqu'un pourrait m'aider ce serait gentil

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu envisager deux solutions :
    - Utiliser WMI pour lancer un process sur le serveur distant.
    - Utiliser un Web Service (hébergé sur le serveur distant) qui s'occupera de lancer le batch à la réception d'une commande de ton application ASP.NET.

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Bonjour,

    Tu peux aussi utiliser des consoles utilisant des services WCF. Il y a un exemple dans cette réponse (cf. fichier attaché): http://www.developpez.net/forums/d12...g/#post7018566

    A+

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 113
    Points : 65
    Points
    65
    Par défaut
    Salut,

    Dans mon appli, j'utilise la même chose, et on a, d'une part une variable d'environnement sur le serveur:

    ProcessStartInfo startInfo = new ProcessStartInfo(Environment.GetEnvironmentVariable("MAVAR")+"\\load\\load.cmd");

    De plus j'ai constaté qu'il y avait ca dans ma page <script language="C#" runat="server">, je sais pas si cela peut jouer. On le retrouve également sur le bouton qui lance le serveur: runat="server"

    ++

Discussions similaires

  1. [PowerShell] Exécuter un script sur un serveur distant
    Par Merwyn dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 02/10/2012, 19h47
  2. Réponses: 12
    Dernier message: 27/10/2009, 22h25
  3. Réponses: 2
    Dernier message: 24/08/2007, 20h16
  4. [ASP.NET] Executer mon site sur le serveur
    Par mael94420 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/12/2006, 14h57
  5. Exécuter un php sur un serveur distant
    Par echataig dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 12/11/2005, 23h49

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