rlemon
rlemon

Reputation: 17666

Launch a program from ASP.NET C#

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

Answers (5)

Florin Florea
Florin Florea

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

Paul Keister
Paul Keister

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

Ashish Gupta
Ashish Gupta

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

Smur
Smur

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

nickytonline
nickytonline

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

Related Questions