3

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

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

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

4

4 回答 4

3

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

也许可以对 Silverlight 做同样的事情,但它有一个更严格的沙箱等。它还需要让 Web 服务器代表它完成所有的数据库工作。

于 2009-03-26T13:59:35.307 回答
1

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

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

于 2009-03-26T13:59:27.007 回答
0

任何代码都可以扫描给定位置和权限的文件。如果一个网站在另一台机器上打开一个 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。无论哪种方式,请注意安全权限并记住这样做的风险。

于 2009-03-26T14:07:41.903 回答
0

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

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

于 2009-03-26T14:10:01.117 回答