Posté(e) le 31 janvier 200619 a 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
Posté(e) le 31 janvier 200619 a rajoute "start" devant : Shell("start C:\Inetpub\wwwroot\ControleServices\start.bat")
Posté(e) le 31 janvier 200619 a Auteur 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 ???
Posté(e) le 31 janvier 200619 a 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")
Posté(e) le 31 janvier 200619 a Auteur 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") %>
Posté(e) le 31 janvier 200619 a 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
Posté(e) le 31 janvier 200619 a Auteur 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 :'(
Posté(e) le 31 janvier 200619 a 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
Posté(e) le 31 janvier 200619 a Auteur 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 ...
Posté(e) le 31 janvier 200619 a 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é.
Posté(e) le 1 février 200619 a Auteur 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
Posté(e) le 1 février 200619 a Auteur 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
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.