【问题标题】:How to call an exe file in button click from ASP.Net?如何在 ASP.Net 的按钮单击中调用 exe 文件?
【发布时间】:2016-08-01 03:48:03
【问题描述】:

我有一个 exe 文件(控制台应用程序)。在我的 ASP.Net 中,我有一个带有按钮的页面。在按钮上单击。我想启动控制台应用程序。

这是我的代码:

ProcessStartInfo startinfo = new ProcessStartInfo();
            startinfo.FileName = @"C:\PushNotificationSampleConsoleVersion\PushNotificationSampleConsoleVersion\bin\Release\PushNotificationSampleConsoleVersion.exe";
            startinfo.CreateNoWindow = true;
            startinfo.UseShellExecute = true;
            Process myProcess = Process.Start(startinfo);
            myProcess.Start();

当我单击按钮时。没啥事儿。我没有看到命令提示符窗口。但是,当我检查我的任务管理器时。我看到这个过程开始了。

我的代码有问题吗?

谢谢。

【问题讨论】:

  • 我建议你同时删除 startinfo.CreateNoWindow = true;startInfo.UseShellExecute = true; 虽然希望 Web 应用程序能够在服务器上启动控制台窗口似乎有点奇怪...
  • 我做到了。它仍然没有显示窗口
  • 啊,明白了——大概是因为您在 IIS 下运行,我不希望它能够与桌面交互。您也许可以通过服务权限来解决这个问题,但同样 - 您确定要让任何点击网站的人都能够在服务器桌面上创建控制台窗口吗?
  • 控制台窗口不应出现在用户浏览站点的本地计算机中。但是,exe 文件将位于服务器中。这可能吗?
  • 不,不是。当然,不是作为常规控制台窗口。 (如果我从移动设备或其他没有“控制台窗口”概念的设备浏览,您会期望发生什么?)创建一种“虚拟”是可行的(但需要做很多工作)控制台窗口”,并通过它与您的 ASP.NET 应用程序通信,然后该应用程序将与进程通信。但这可能是一项巨大的工作——在这样做之前,我会仔细考虑你想要实现的目标。

标签: c# asp.net process


【解决方案1】:

要从网页启动 exe,您应该做一些额外的事情。由于浏览器不允许直接查看您的文件系统。此 linq 可能会帮助您。 How to launch an EXE from Web page (asp.net)

【讨论】:

  • 我相信 OP 是在服务器上启动应用程序,而不是在客户端上,我认为他们知道...
  • @JonSkeet 是的,我在服务器上运行它。
  • @avaneesh 我认为这不是一个好主意。因为它不安全。并且在按钮单击时没有发生(它将继续下载 exe 文件)
  • @user123456 我认为您必须创建自定义 URI 并将您的控制台应用程序绑定到该自定义 URI 并使用您的 asp.net 网页调用该 URI 以启动该应用程序。
猜你喜欢
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 2012-09-01
相关资源
最近更新 更多