Le lancement d'un programme de ASP.NET C#
J'ai un programme (que j'ai créé) et je veux le lancer sur le serveur lorsque la page se charge.
Voici le code que j'ai
public partial class _Default : System.Web.UI.Page
{
Process app = new Process();
protected void Page_Load(object sender, EventArgs e)
{
app.StartInfo.FileName = @"D:/Path to /My/Program to be run.exe";
app.Start();
}
}
Dès maintenant l'application est " run " cependant, il se bloque instantanément.
Si je viens de lancer l'application (en double-cliquant sur le fichier exe), il s'exécute et tout va bien.
personne voir si je suis absent quelque chose ici?
Est-il une sorte de message d'erreur quand il se bloque?
BTW, pourquoi faire des "app" public?
"{nom de l'application} a cessé de fonctionner. Windows recherche une solution au problème"
c'était un ultime effort pour rendre l'application fait exécuter. Je ne sais pas, j'ai été lire des tutoriels et à regarder mon vieux ASP.NET livre et de déblayage autour. Oublié de l'enlever avant que j'ai posté mon code d'exemple.
Rien dans le Journal des Événements sur l'erreur?
BTW, pourquoi faire des "app" public?
"{nom de l'application} a cessé de fonctionner. Windows recherche une solution au problème"
c'était un ultime effort pour rendre l'application fait exécuter. Je ne sais pas, j'ai été lire des tutoriels et à regarder mon vieux ASP.NET livre et de déblayage autour. Oublié de l'enlever avant que j'ai posté mon code d'exemple.
Rien dans le Journal des Événements sur l'erreur?
OriginalL'auteur rlemon | 2011-08-26
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser ProcessStartInfo.
app.StartInfo.FileName = @"...";
ligne est.Duuuur, désolé. Haha.
Travaillé! Les travaux de cette. Cependant Pourquoi a-t-elle à l'évocation de cette façon? quelle est la réelle différence (juste pour que je suis en train d'apprendre quelque chose et pas juste copier-coller votre réponse)
Il est peut-être parce que vous avez défini votre
Process
variable en dehors dePage_Load
, ou parce que vous avez oublié le MDC.bien définir les WorkingDirectory résolu mon problème et que l'application démarre maintenant sans erreurs.
OriginalL'auteur Smur
Cela ressemble à l'application que vous essayez d'exécuter dispose d'une interface utilisateur. Si vous êtes à l'intention de l'exécuter sur le serveur à l'aide de la ASP.NET compte de pool d'applications, vous aurez moins de problèmes si la conception de l'application comme une application console, et garde tous l'accès à des ressources externes, comme votre pupitre, avec des exceptions enregistrées.
OriginalL'auteur Paul Keister
C'est un problème de sécurité. L'exécution de n'importe quel fichier exe à partir de l'extérieur le dossier bin constitue une menace pour la sécurité. Vous devez copier le fichier exe que vous voulez exécuter dans le dossier bin.
OriginalL'auteur Florin Florea
Cela dépend de ce que vous essayez d'exécuter. Peut-être que lorsque vous l'exécutez à partir de votre application en C# il manque quelque chose. Vous aussi vous pourriez ne pas avoir les autorisations appropriées pour exécuter l'application à partir de C#. C'est tout ce que je peux vraiment dire sans savoir ce que cherche à exécuter.
Pour cela, je vous recommande d'utiliser un Service Windows pour démarrer le programme: de cette façon, l'IHM peut stocker les données dans la base de données et, plus tard, dans n'importe quelle application, vous pouvez afficher les données triées par inséré datetime ou quelque chose comme ça.
OriginalL'auteur nickytonline