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

C# Discussion :

Problème lancement exe et web service


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut Problème lancement exe et web service
    Bon là je sèche....

    Bonjour d'abord !

    Avant d'expliquer je tiens à dire que j'ai déjà réussi à faire marcher mon truc, mais depuis que je suis passé avec IIS (avant c'était cassini) ça marche plus.

    J'essaye de lancer depuis un web service une commande qui s'execute dans le shell. J'ai déjà compris que l'exe se lance sur le serveur et que donc il n'y pas d'interface graphique qui se lance.
    Donc j'ai tester en lancant notepad.exe, et ça le lance, je le vois pas, mais je le vois dans les processus... donc ok !

    Par contre, ce que je souhaite lancer c'est un scan d'un fichier avec SpamAssassin qui ensuite crée un rapport txt. le lancement peut se faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $> spamassassin.exe < monEmail.htm > rapportdemonEmail.htm.txt
    bon vu que pour les passages d'arguments il n'aimait pas les input output < et >, pour j'avoue me faciliter la vie, j'utilise un .bat, comme ça je lui passe juste le nom du fichier et le .bat se débrouille pour construire correctement la ligne.

    Mais bon à la limite, pour faire des tests et limiter les possibilités d'erreurs, on peut lancer une autre commande qui permet de vérifier la config de spamassassin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    spamassassin.exe --lint -D
    voilà ce que j'utilise comme code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    string arguments = "--lint D";
     
    ProcessStartInfo SAProcessStart = new ProcessStartInfo("spamassassin.exe");
    SAProcessStart.Arguments = arguments;
    SAProcessStart.WorkingDirectory = @"C:\SpamAssassin\";
     
    Process SAProcess = new Process();
    SAProcess = Process.Start(SAProcessStart);
    SAProcess.WaitForExit();
    quand je test, je vois dans les processus que spamassassin se lance, mais se ferme de suite alors que, je précise, cette commande est censé prendre 3-4 secondes.

    Donc le SAProcess.WaitForExit(); n'agit pas...

    une idée ? car là tout mon programme est bloqué !

    merci

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    ce ne serait pas un pb de droits, par zazard ?

    Vérifie ton mode d'authentification, je crois me rappeler que cassini tourne avec les droits de l'utilisateur courant, mais qu'IIS tourne avec un compte système


    Typiquement, ça sent un besoin d'impersonation...

    Éventuellement, essaye de debugger ton code en remote, je pense que ton SAProcess.WaitForExit marche, mais que ta commande te ressort une erreur

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Pour les droits j'ai déjà ajouté le compte ASPNET de mon poste car sans ça, le processus ne démarrait meme pas.

    Avant de faire ton autre test, j'ai carrément créé une appli console et je m'assure que le process marche bien, après je ferais un copié collé dans mon web service pour voir.

    Je reviens donc dans qqs minute

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    bon j'ai réussi à bien faire marcher mon appli console avec le .bat, mais du coup j'essaye de faire marcher directement avec l'exe, donc j'ai essayé plusieurs chose mais y'a rien à faire les < et > il veut pas et il veut directement toute la commande sur la même ligne.

    donc du coup, je me disais, y'aurais un moyen de directement copier dans le shell la ligne c:\SpamAssassin\spamassassin.exe < toto > toto.... ?

    je cherche de mon côté mais si tu sais comment faire ou qqn d'autre, je suis preneur.

    Mais mon idée est peut être naze ! si c'est le cas, je vais rester avec mon .bat, tant pis !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    bon je garde mon bat car j'y arrive pas autrement, après tout ça marche lol.

    donc mon code en appli console marche (j'ai pu donc remarquer qu'il lancait 2 processus cmd.exe et spamassassin.exe, logique)

    donc je copie colle dans mon web service sans trop me faire d'illusion, et donc ça marche pas. et je remarque qu'il ne lance pas cmd.exe, c'est normal ? du coup dans le doute j'ai ajouté aussi le compte ASPNET machine account dans cmd.exe...

    mais ça marche toujours pas...

    le code que j'utilise est simplement ça (code qui marche en projet application console) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Process SAProcess = new Process();
    SAProcess = Process.Start(_scanSABat, mail + " " + "\"" + _pathFiles + "\"" + " " + "\"" + _pathReports + "\"");
    donc les fichiers où j'ai ajouté le compte ASPNET sont le .bat, spamassassin.exe et cmd.exe

    il faudrait que je mette ce compte dans tous les fichiers de spamassassin ? je doute...

    et pour finir, le processus spamassassin.exe qui démarre et s'arrette de suite, ne démarre pas à chacun de mes appels.

    je suis en train de déprimer ! c'est horrible

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    bon je continue mon monologue.

    j'ai essayé de lancé un process cmd.exe (qui marche) puis de faire un StandardInput.WriteLine(c:\SpamAssassin\spamassassin.exe ......) et pareil, ça le lance et il se coupe.

  7. #7
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    essaye, pour tester, de mettre ton identite a ton service web...

    genre, dans ton web.config, ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <system.web>
    ...
    <identity impersonate="true" userName="tondomaine\remsrock" password="tonpassword" />
    ...
    </system.web>
    Et vois si ca change

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Il me dit que mes id sont incorect en mettant PC\blablabla et monPassword...

    Sinon, j'ai réussi à lancer mon exe spamassassin en lui donnant comme argument "--lint -D", ça sert en gros à vérifier sa config, donc le processus marche 3-4 sec, et c'est le temps que ça prend à faire, donc c'est bon, l'exe marche.

    mais dès que je veux lui mettre la syntaxe pour le scan, il bloque sur les chevrons. en sachant que l'erreur qu'il me dit ("<" Invalid argument) vient de SpamAssassin... donc c'est vraiment pas gagner là !
    J'avais cette erreur au tout début c'est pour ça que j'avais opté pour un .bat avec qui ça marchait. mais là, il marche pas avec le .bat.

    évidemment direct en ligne de commande, il est ok avec les chevrons.

    une idée miracle ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Bon si jamais un jour ça sert à quelqu'un je mets la suite de mon expérience :

    un collègue à tester mon projet sur son poste Vista avec donc iis 7 et ça marche sans avoir fait aucune config particulière...

    donc le problème vient de mon iis 5 et non pas de mon code ou autre.

    voilou

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Finalement en continuant de faire quelques tests avant d'essayer mon appli en dev où y'a iis 6, j'ai essayé de copier mon bat, le dossier de l'exe spamassassin (qui était sur c:\) et mes fichiers à analyser dans le même dossier que mon web service (d:\) et là miracle ! ça marche !

    Donc j'enlève le "résolu" du post si jamais quelqu'un à une idée du pourquoi du comment.

Discussions similaires

  1. problème pour appeler un web service
    Par alexlevenere dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 06/01/2009, 16h24
  2. Problème d'accès à un web Service en HTTPS.
    Par eric39 dans le forum Services Web
    Réponses: 2
    Dernier message: 17/12/2008, 09h55
  3. Problème : IIS 6.0 - Web service
    Par identifiant_bidon dans le forum IIS
    Réponses: 4
    Dernier message: 20/04/2007, 13h50
  4. Problème pour définir un web service client
    Par GRicco dans le forum NetBeans
    Réponses: 5
    Dernier message: 10/04/2007, 09h54
  5. Réponses: 5
    Dernier message: 04/07/2006, 00h11

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