You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows IIS服务器上通过网页按钮远程运行.exe程序

实现IIS网页触发服务器端可执行文件运行

核心思路

通过IIS托管的ASP.NET页面,调用服务器端的进程启动API,点击网页按钮时向服务器发送请求,触发对应程序在服务器本地执行(你需求中的"远程运行"本质是前端触发服务器本地程序)。

具体实现步骤

1. 调整IIS应用程序池权限

  • 找到站点对应的应用程序池,右键进入【高级设置】
  • 将【标识】改为具有足够权限的账户(比如本地管理员,或专门创建的、有权限访问C:\exe目录并执行program.exe的账户)
  • 说明:默认的IIS AppPool\XXX账户权限有限,大概率无法启动外部程序,必须调整

2. 编写服务器端代码(以ASP.NET Web Forms为例)

创建.aspx页面,添加按钮和后台逻辑:

前端按钮代码(HTML部分)

<asp:Button ID="BtnRun1" runat="server" Text="运行参数组合1" OnClick="BtnRun1_Click" />
<asp:Button ID="BtnRun2" runat="server" Text="运行参数组合2" OnClick="BtnRun2_Click" />

后台C#代码

using System.Diagnostics;

protected void BtnRun1_Click(object sender, EventArgs e)
{
    LaunchExe(@"C:\exe\program.exe", "arg1 arg2");
}

protected void BtnRun2_Click(object sender, EventArgs e)
{
    LaunchExe(@"C:\exe\program.exe", "arg1 arg3");
}

private void LaunchExe(string exePath, string arguments)
{
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = exePath;
    startInfo.Arguments = arguments;
    // 隐藏程序窗口(按需设置)
    startInfo.WindowStyle = ProcessWindowStyle.Hidden;
    startInfo.UseShellExecute = false;
    startInfo.CreateNoWindow = true;

    try
    {
        Process.Start(startInfo);
        Response.Write("程序已启动");
    }
    catch (Exception ex)
    {
        Response.Write($"启动失败:{ex.Message}");
    }
}

3. 补充文件系统权限

  • 给C:\exe目录添加应用程序池标识(或你设置的账户)的读取和执行权限
  • 如果程序需要写入日志或访问其他资源,给对应目录添加写入权限

4. 测试验证

  • 将页面发布到IIS站点
  • 访问网页点击按钮,通过服务器任务管理器的进程列表确认program.exe是否启动

额外提醒

  • 内网环境也建议限制网页访问范围(比如IIS IP白名单、Windows身份验证),避免误操作
  • 若程序有输出需求,可在ProcessStartInfo中配置输出重定向到日志文件,方便排查问题

内容的提问来源于stack exchange,提问作者G.I. Jew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:42:52