我在ASP.NET表单中有一个按钮,当你按下它时,在代码隐藏后它会运行一个Process.Start()命令。 我的PC充当服务器,当我从客户端按下按钮时,它将尝试在客户端的PC上运行该命令。如何在服务器PC上运行该命令?
ASP控制:
<asp:Button ID="ButtonRun" runat="server" Font-Size="XX-Large" Text="Run"
onclick="ButtonRun_Click" />
代码隐藏功能:
protected void ButtonRun_Click(object sender, EventArgs e)
{
Process.Start(MapPath(botPath));
}
当然,这都是受密码保护的。 IE,除非先进行身份验证,否则无法调用该函数。
答案 0 :(得分:0)
服务器端写的任何内容都将在服务器上执行。对于您上面给出的代码,默认情况下,Process将在服务器上启动。
答案 1 :(得分:0)
Process.Start总是在调用函数的机器上启动进程,因此在您的情况下,进程始终在服务器上启动。当失败时,ASP.Net会生成一个错误页面,这是您在浏览器中看到的。那为什么它有时会成功,有时会失败呢?这里没有足够的背景说,但我猜这两个案例botPath
有不同的值。您可以尝试对其进行硬编码以验证该假设。
像Process Monitor这样的工具会向您显示尝试启动新进程,以防您怀疑它们是否都在服务器上启动。它还会记录可执行文件的路径,这可能有助于解决问题。