Bonjour à tous,
Je viens vers vous car je suis entrain de m'arracher les cheveux sur un problème 
Ce que je voudrais faire :
Je dois depuis une fonction de mon WebService réalisé en C#, lancer une application avec des paramètres en ligne de commande, qui envoi des fichiers sur différents serveurs FTP.
Cet exécutable est SyncBack et le lancement se fait de cette manière :
"C:\Program Files\2BrightSparks\SyncBackSE\SyncBackSE.exe" -m Profil1 Profil2
Ce que j'ai testé :
J'ai tout d'abord testé "Process.Start()" et également avec divers paramètres.
1 2 3 4 5
| Process myInfo = new Process();
myInfo.StartInfo.FileName = ch_V_NomExe;
myInfo.StartInfo.WorkingDirectory = ch_V_RepertoireExe;
myInfo.StartInfo.Arguments = ch_V_Argument;
bool bo_Res = myInfo.Start(); |
L'exécutable se lance bien cependant les profils passés en paramètres ne s'exécutent pas.
J'ai donc pensé que la ligne de commande n'était pas bien gérée et j'ai créé un .bat qui me lance SyncBack.
Quand je le lance à la main pas de problème tout fonctionne mais quand mon WebService le lance, SyncBack se lance mais n'exécute pas les profils.
Peut être un problème de session qui fait que SERVICE RESEAU n'a pas le droit d'exécuter les profils, du coup j'en suis a essayer de lancer mon .bat depuis une session utilisateur mais je n'y arrive pas.
Je le fais de cette façon :
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
| using (Process process = new Process())
{
string pathToProgram = @"C:\test.bat";
string userName = "mon_user";
string password = "mon_pwd";
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = pathToProgram;
processStartInfo.CreateNoWindow = true;
processStartInfo.UseShellExecute = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.RedirectStandardError = true;
processStartInfo.UserName = userName;
processStartInfo.Password = new System.Security.SecureString();
char[] passwordChars = password.ToCharArray();
foreach (char c in passwordChars)
{
processStartInfo.Password.AppendChar(c);
}
process.StartInfo = processStartInfo;
process.Start();
} |
Pourriez vous m'aider Svp ?
Merci.
Greg
Partager