2009-09-05 8 views
0

Je souhaite savoir comment exécuter mon application de console à partir d'ASP.NET, dans une seule solution.Exécution de l'application Console à partir d'ASP.NET

Je veux exécuter et arrêter l'application.

+2

plus d'informations requises .... –

+0

Je pense que vous devez reculer mais pas lentement (très vite) s'il vous plaît. –

Répondre

4

Sur un ordinateur client ou sur le serveur? Si vous pensez machine à la clientèle, il n'y a aucun moyen!

de toute façon c'est comment vous le faites sur le serveur de l'application

 Var process = new Process(); 
     process.StartInfo.FileName = "Notepad.exe";//in your case full path with the application name 
     process.StartInfo.Arguments = " ";//arguments 
     process.Start(); 

     // Do your magic here 

     process.Kill();//Dont forget to kill it when you are done 
+0

Tout cela est très bien tant que vous pouvez conserver la gestion des processus entre les demandes (si cela dure plus longtemps - sinon je ne vois pas de raison d'exécuter un processus séparé). Je pense à la session InProc pour garder le contrôle ... Mais comment le faire quand le pool d'applications Asp.net est recyclé? Comment pouvez-vous contrôler le processus dans ce cas? –

2

Il suffit de commencer comme vous commenceriez tout EXE normal.

var proc = Process.Start(@"C:\myconsole.exe"); 

Vous devez placer le fichier EXE de la console à un endroit approprié bien.

Et vous pouvez terminer avec:

proc.Kill(); 

...

Note: que le démarrage du processus sur une seule demande pourrait ne pas être une bonne idée. Il vaudrait peut-être mieux le démarrer sur un autre thread et le laisser tourner afin que vous puissiez répondre plus rapidement à vos utilisateurs.

+0

Sur un autre thread l'exécuterait dans le pool d'applications IIS qui peut être recyclé pour une raison quelconque. Un processus séparé est plus robuste mais vous perdez la poignée de processus ... ou? –

Questions connexes