繁体   English   中英

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

[英]Best way to run a tool from ASP.Net page

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

我不希望将代码上传到站点,因为项目可能很大。 我希望能够在他们的机器上本地运行我的程序集。 是否有捷径可寻?

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

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

也许能够做的Silverlight相同,但具有严格的沙箱等,这还需要问web服务器做代表其所有的数据库工作。

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

听起来你希望他们下载工具并从他们的本地机器运行它,这对你有用吗?

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM