Reputation: 17666
I have a program (I created) and I want to start it on the server when the webpage loads.
Here is the code I have
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();
}
}
Right now the application is 'run' however it crashes instantly. If I just run the application (by double clicking the exe) it runs and everything is fine.
anyone see if i'm missing something here?
Upvotes: 11
Views: 18903
Reputation: 59
This is a security issue. Running any exe from outside the bin folder poses a security threat. You have to copy the exe you are trying to run in the bin folder.
Upvotes: 3
Reputation: 13077
It sounds like the application you're trying to run has a user interface. If you're intention is to run this on the server using the ASP.NET application pool account, you will have fewer problems if you design the application as a console app, and guard all access to external resources, like your HMI device, with logged exceptions.
Upvotes: 3
Reputation: 15139
Have you tried something like this in Javascript :-
var shell = new ActiveXObject("Shell.Application");
var appExe = @"D:/Path to /My/Program to be run.exe";
shell.ShellExecute(appExe , "", "", "open", "1");
Upvotes: -1
Reputation: 3113
You could use ProcessStartInfo.
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"D:/Path to /My/Program to be run.exe";
psi.WorkingDirectory = IO.Path.GetDirectoryName(psi.FileName);
Diagnostics.Process.Start(psi);
Upvotes: 12
Reputation: 6981
It depends what you're trying to run. Maybe when you run it from your C# app something's missing. You also might not have the correct permissions to run the app from C#. That's all I can really say without knowing what's trying to be run.
Upvotes: 0