NiTrOuS Posté(e) le 31 janvier 2006 Partager Posté(e) le 31 janvier 2006 Bonjour, je commence vraiment à désespérer. J'ai un simple fichier en ASP.NET depuis lequel je voudrais executer une commande dos. J'ai essayé d'executer la commande Shell("net start alerter") ca ne me met pas de message d erreur mais ca ne fait rien. J'ai essayé d'executer avec un batch, et là il ne me trouve pas le batch Shell("C:\Inetpub\wwwroot\ControleServices\start.bat") Je ne sais vraiment plus quoi faire ! Voici le code complet: <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="ControleServices.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name=vs_defaultClientScript content="JavaScript"> <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5"> <script language="vb" runat="server"> Public Sub Demarrage(ByVal sender As Object, ByVal e As System.EventArgs) Shell("C:\Inetpub\wwwroot\ControleServices\start.bat") End Sub Public Sub Arret(ByVal sender As Object, ByVal e As System.EventArgs) Shell("cmd") End Sub </script> </head> <body MS_POSITIONING="GridLayout"> <div align="center"> <h1>Démarrage et arrêt d'un service</h1> <br><br> <form id="Form1" method="get" runat="server"> <asp:Button ID="bStart" Text="Start" OnClick="Demarrage" Runat="server"></asp:Button> <br><br> <asp:Button ID="bStop" Text="Stop" OnClick="Arret" Runat="server"></asp:Button> </form> </div> </body> </html> En fait c est une page aspx avec un script en vb. Peut etre est-ce possible de directement appeler mon batch ou meme la commande dos a partir de l asp (sans utiliser de script) ??? Mais je n ai pas trouvé comment. Surement entre des <% %> Bon, le cadeau, c est un t-shirt pcinpact Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 31 janvier 2006 Partager Posté(e) le 31 janvier 2006 rajoute "start" devant : Shell("start C:\Inetpub\wwwroot\ControleServices\start.bat") Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 31 janvier 2006 Auteur Partager Posté(e) le 31 janvier 2006 Marche pas. Si je mets Shell("C:\start.bat") il me le trouve mais rien ne se passe Si je mets Shell("start C:\start.bat") il ne me trouve pas le fichier donc il y a une erreur :( Ce n'est pas un probleme de configuration de l'IIS ??? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lestat666 Posté(e) le 31 janvier 2006 Partager Posté(e) le 31 janvier 2006 Marche pas. Si je mets Shell("C:\start.bat") il me le trouve mais rien ne se passe Si je mets Shell("start C:\start.bat") il ne me trouve pas le fichier donc il y a une erreur :( Ce n'est pas un probleme de configuration de l'IIS ??? Essaye de regarder du côté de Process genre Dim obj as new Process obj.start("C:\start.bat") Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 31 janvier 2006 Auteur Partager Posté(e) le 31 janvier 2006 Compiler Error Message: BC30002: Type 'Process' is not defined. <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="ControleServices.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name=vs_defaultClientScript content="JavaScript"> <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5"> <script language="vb" runat="server"> Public Sub Demarrage(ByVal sender As Object, ByVal e As System.EventArgs) Dim obj as new Process obj.start("C:\start.bat") End Sub Public Sub Arret(ByVal sender As Object, ByVal e As System.EventArgs) Shell("C:\stop.bat") End Sub </script> </head> <body MS_POSITIONING="GridLayout"> <div align="center"> <h1>Démarrage et arrêt d'un service</h1> <br><br> <form id="Form1" method="get" runat="server"> <asp:Button ID="bStart" Text="Start" OnClick="Demarrage" Runat="server"></asp:Button> <br><br> <asp:Button ID="bStop" Text="Stop" OnClick="Arret" Runat="server"></asp:Button> </form> </div> </body> </html> Edit: J'ai réussi à exécuter ta commande mais c est toujours le meme, on dirait qu il y a quelque chose qui empeche d executer les commandes dos ou les batchs :( Sinon en ASP.NET directement y a pas moyen, sans passer par un script vb ? Un truc du genre <% =shell("net start alerter") %> Lien vers le commentaire Partager sur d’autres sites More sharing options...
tsubasaleguedin Posté(e) le 31 janvier 2006 Partager Posté(e) le 31 janvier 2006 Je te conseil de faire un batch qui contient ton batch et redirige la sortie dans un fichier texte pour voir la sortie d'erreur du batch genre : Batch.bat qui contient StartProcess.bat >> log.txt Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 31 janvier 2006 Auteur Partager Posté(e) le 31 janvier 2006 Et comment faire cela ??? Tu peux me mettre le code ? OK c'est fait. Si je l'exécute en ligne de commande dans le dos, j'ai bien le fichier texte qui se crée et qui me dit que tout s est bien passé. Par contre, en passant par mon programme, rien ne se passe, il ne crée pas le fichier texte et n execute pas ma commande :'( Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 31 janvier 2006 Partager Posté(e) le 31 janvier 2006 Euh, ton serveur web peut-il lire les données dans ce répertoire ? Je connais pas IIS, mais dans Apache, il faut s'en tenir à l'arborescence du site web ... Essaie en mettant ton batch au même endroit que ta page ASP ... Après je laisse les gens qui connaissent ces technos t'aider Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 31 janvier 2006 Auteur Partager Posté(e) le 31 janvier 2006 J'ai déjà essayé de mettre mon batch dans le meme repertoire et la il ne le trouve meme pas, il me met file not found. J'ai parlé avec mon patron, il se peut que ca soit un probleme de droit sur la machine, je vais regarder a ca demain et je vous dirai quoi (il s agirait du user ASPNET qu il faudrait mettre dans le groupe des admins ...) a voir ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 31 janvier 2006 Partager Posté(e) le 31 janvier 2006 Euh, si ton répertoire n'est pas accessible au user ASPNET, il ne FAUT PAS rendre ce user admin ! Il faut plutôt gérer les droits pour que le user ASPNET puisse accéder à ce répertoire. Mettre le user du serveur Web en admin est une grave faille de sécurité. Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 1 février 2006 Auteur Partager Posté(e) le 1 février 2006 Bon ben j'ai essayé de mettre le user ASPNET dans le groupe Administrators, cela ne change absolument rien. Je ne sais plus quoi faire. Pourquoi est-ce qu'il ne veut pas exécuter mes commandes DOS ou mes .bat Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 1 février 2006 Auteur Partager Posté(e) le 1 février 2006 C'est bon j'ai trouvé. C'etait un probleme de droit d execution que j ai résolu en configurant l IIS. Merci à tous pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.