从ASP.Net页面运行工具的最佳方法

时间:2009-03-26 13:55:04

标签: c# asp.net executable

我有一个开发人员工具,我想从内部网站运行。它扫描项目的源代码并将信息存储在DB中。我希望用户能够访问该网站,选择他们的项目,然后点击运行。

我不希望将代码上传到网站,因为项目可能很大。我希望能够在他们的机器上本地运行我的程序集。有一个简单的方法吗?

编辑:我应该注意,目前这需要在VS2005中完成 编辑2:我正在寻找与TrendMicro's Housecall类似的功能。我希望扫描在本地运行,但结果将显示在网页

4 个答案:

答案 0 :(得分:3)

您可以使用ClickOnce项目(winform / wpf) - 本质上是通过Web服务器部署的常规客户端应用程序。在客户端,它可以做任何需要的事情。 VS2005 / VS2008将此(对于winform / wpf)设置为“发布” - 并生成一个“.application”文件,该文件可被浏览器识别(或至少某些浏览器;-p)。

可能能够对Silverlight执行相同操作,但是它具有更严格的沙箱等。还需要请求Web服务器代表其执行所有数据库工作。

答案 1 :(得分:1)

  

我希望能够运行我的程序集   在他们的机器上本地

听起来您希望他们下载该工具并从本地计算机上运行它,这对您有用吗?

答案 2 :(得分:0)

任何代码都可以扫描给定位置和权限的文件。对于一个在不同机器上打开exe并允许运行并访问Web服务器上包含的文件的网站,需要极低的安全性,这意味着整个系统几乎完全可以被攻击。如果您的系统完全位于防火墙之后,因此不受外部干扰的影响,那么您希望更多地考虑权限而不是代码。

要在机器上运行exe,请尝试按照记事本示例,尽管您可能还必须使用指定的目录

ProcessStartInfo psi = new ProcessStartInfo(“notepad.exe”);
psi.WindowStyle = ProcessWindowStyle.Hidden;

流程p =新流程(); p.EnableRaisingEvents = true; p.Exited + = new EventHandler(ExitHandlerToKillProcess); p.StartInfo = psi; p.Start();

完成后别忘了杀死进程。或者使用javascript。无论哪种方式都要观察安全权限并记住这样做的风险。

答案 3 :(得分:0)

我可能会编写某种命令行工具或服务来处理和提取项目数据。然后我将使用页面来更新/注册Web服务器和命令行工具都具有公共访问权限的项目。然后在指定时间手动或通过cron或类似机制将数据提取到数据库。一旦你有这个,你只需使用网站显示最后的提取时间和提取的数据。

如果项目/最终用户位于不同的子网上,那么您将需要最终用户运行该工具,然后将数据发布到数据库中。