C# process.start从ASP页开始,将exe文件放在何处

C# process.start从ASP页开始,将exe文件放在何处,c#,asp.net,.net,C#,Asp.net,.net,只是一个简单的问题,在ASP项目中,我将要启动的exe放在哪里?它在bin文件夹中看不到它。请记住,您的网站是在服务器上运行的,因此,如果您在某个进程中执行Shell操作。从ASP.Net应用程序开始,它将在服务器上打开,而不是在客户端PC上打开 请确保在生产环境中进行测试,当您在服务器上执行shell进程时,我不建议您忘记关闭它们,否则,您将在服务器上出现奇怪的错误。请记住,您的网站是在服务器上运行的,因此,如果您启动任何进程。从ASP.Net应用程序开始,它将在服务器上打开,而不是在客户端P

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

请记住,您的网站是在服务器上运行的,因此,如果您在某个进程中执行Shell操作。从ASP.Net应用程序开始,它将在服务器上打开,而不是在客户端PC上打开


请确保在生产环境中进行测试,当您在服务器上执行shell进程时,我不建议您忘记关闭它们,否则,您将在服务器上出现奇怪的错误。

请记住,您的网站是在服务器上运行的,因此,如果您启动任何进程。从ASP.Net应用程序开始,它将在服务器上打开,而不是在客户端PC上打开


请确保在生产环境中对此进行测试,当您在服务器上执行shell进程时,我不建议您忘记关闭它们,否则您将在服务器上遇到奇怪的错误。

您需要传递完整的进程路径。启动:

但是,~/bin/用于.Net程序集;通常最好将外部EXE放在~/App\u Data/中


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

您需要传递完整路径以进行处理。开始:

Path.Combine(Server.MapPath(Request.ApplicationPath), "PathToExeFromWWWRoot");
但是,~/bin/用于.Net程序集;通常最好将外部EXE放在~/App\u Data/中


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

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

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

你的第一句话是假的。虽然第二句话是对的,但很可能这是他想要的。你的第一句话是错的。虽然第二个是真的,但这可能是他想要的。这是一种奇怪的到达路径的方式,而且它仍然可能会中断,这取决于pathToExe是什么。显然,不是。。。我指的是字符串的内容。比如,如果它只是一个文件名。或者,如果这是一条根深蒂固的道路。编辑你的原创、冒犯性评论是个好主意。自从您编辑以使Combine的第二个参数更清晰后,我已删除了DV。请注意,DV的另一个原因是您没有提供代码解释;一个解释会使我的评论毫无意义。除此之外,我在这里完成了:这是一种奇怪的到达路径的方式,它仍然可能根据pathToExe是什么而中断。显然,不是。。。我指的是字符串的内容。比如,如果它只是一个文件名。或者,如果这是一条根深蒂固的道路。编辑你的原创、冒犯性评论是个好主意。自从您编辑以使Combine的第二个参数更清晰后,我已删除了DV。请注意,DV的另一个原因是您没有提供代码解释;一个解释会使我的评论毫无意义。除此之外,我在这里完成了:严格地说,您不必一直提供exe的完整路径-如果它在您的路径中,那么它仍然可以正常工作。例如,在PowerShell提示符下,您可以使用:[diagnostics.process]::start'cmd.exe'启动一个新的cmd。严格来说,您不必一直提供exe的完整路径-如果它在您的路径中,那么它仍然可以正常工作。例如,在PowerShell提示符下,您可以使用:[diagnostics.process]::start'cmd.exe'启动一个新的cmd。您可能需要检查asp.net应用程序池的相关用户标识是否最有可能读取和执行该文件。您是否可以澄清您想要在服务器上shell一个exe?为什么要使用ASP.Net站点而不使用服务器操作系统工具(如将exe设置为在启动时打开)来执行此操作?我可以理解想在客户端做这件事,但究竟为什么要在服务器上做呢?根据做过这件事的TS'ing peoples服务器的经验,这是一个灾难的配方…您可能需要检查asp.net应用程序池的相关用户身份,以确保其最有可能读取和执行该文件。您能否澄清您想要在服务器上解压exe?为什么要使用ASP.Net站点而不使用服务器操作系统工具(如将exe设置为在启动时打开)来执行此操作?我可以理解想在客户端做这件事,但究竟为什么要在服务器上做呢?从做过这件事的人们的经验来看,这是一个灾难的秘诀。。。
Path.Combine(Server.MapPath(Request.ApplicationPath), "PathToExeFromWWWRoot");