1

只是一个简单的问题,我应该将我试图在 ASP 项目中启动的 exe 放在哪里?它无法在 bin 文件夹中看到它。

4

4 回答 4

3

您需要将完整路径传递给Process.Start

Process.Start(Server.MapPath("~/bin/whatever.exe"));

但是,~/bin/适用于 .Net 程序集;通常最好将外部 EXE 放入~/App_Data/.

请注意,您只能在服务器上执行程序,而不能在客户端上执行。

于 2012-05-11T03:02:29.063 回答
1

避免安全问题和多个进程并行运行。从asp页面我宁愿在某个表中排队请求进程启动,而不是让其他进程(如后台Windows服务)从队列中提取并执行。

于 2012-05-11T04:14:31.863 回答
1

请记住,您的网站是在服务器上运行的,因此如果您对任何内容(ASP.Net 应用程序中的 Process.Start)进行外壳操作,它将在服务器上打开,而不是在客户端 PC 上打开。

确保您在生产环境中进行测试,并且当您在服务器上执行 shell 进程时(我不建议这样做),不要忘记关闭它们,否则您最终会在服务器上出现奇怪的错误。

于 2012-05-11T03:02:21.280 回答
0
Path.Combine(Server.MapPath(Request.ApplicationPath), "PathToExeFromWWWRoot");
于 2012-05-11T03:08:27.957 回答