只是一个简单的问题,我在哪里放置我试图在ASP项目中启动的exe?它无法在bin文件夹中看到它。
答案 0 :(得分:3)
您需要传递完整路径Process.Start
:
Process.Start(Server.MapPath("~/bin/whatever.exe"));
但是,~/bin/
适用于.Net程序集;将外部EXE放在~/App_Data/
中通常会更好。
请注意,您只能在服务器上执行程序,而不能在客户端执行。
答案 1 :(得分:1)
请记住,您的网站正在服务器上运行,因此如果您封装任何内容(ASP.Net应用程序中的Process.Start),它将在服务器上打开 - 而不是客户端PC。
请确保在生产中测试此内容以及在服务器上执行shell进程时(我不建议)不要忘记关闭它们,否则最终会在服务器上出现奇怪的错误。
答案 2 :(得分:1)
避免安全问题和多个进程并行运行。从asp页面我宁愿在一些表中排队进程启动请求,而不是像后台的windows服务那样从队列中取出并执行。
答案 3 :(得分:0)
Path.Combine(Server.MapPath(Request.ApplicationPath), "PathToExeFromWWWRoot");