从ASP启动程序.净c#

本文关键字:程序 启动 ASP | 更新日期: 2023-09-27 18:06:51

我有一个程序(我创建的),我想在网页加载时在服务器上启动它。

下面是我的代码

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();
    }
}

现在应用程序正在"运行",但它立即崩溃。如果我只是运行应用程序(通过双击exe),它运行,一切都很好。

有没有人看到我在这里错过了什么?

从ASP启动程序.净c#

你可以使用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);

听起来您要运行的应用程序有一个用户界面。如果您打算在服务器上使用ASP。. NET应用程序池帐户,如果您将应用程序设计为控制台应用程序,并保护对外部资源(如HMI设备)的所有访问,并记录异常,则问题会更少。

这是一个安全问题。从bin文件夹外运行任何exe都会造成安全威胁。你必须把你要运行的exe文件拷贝到bin文件夹

这取决于你想要运行什么。也许当你从c#应用程序中运行它时,有些东西丢失了。你也可能没有从c#运行应用程序的正确权限。这就是我在不知道要运行什么情况下所能说的。

你在Javascript中尝试过这样的东西吗? -

var shell = new ActiveXObject("Shell.Application");
var appExe =  @"D:/Path to /My/Program to be run.exe";
shell.ShellExecute(appExe , "", "", "open", "1");