Aller au contenu

[Resolu] Trouvez l'erreur ...

Featured Replies

Posté(e)

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 :reflechis:

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 :reflechis:

Posté(e)
  • 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)

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)
  • 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)

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)
  • 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)

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 :francais:

Posté(e)
  • 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)

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)
  • 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 :incline:

Posté(e)
  • 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 :francais:

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.