【问题标题】:Can a web server dynamically generate an executable on the fly?Web 服务器可以动态生成可执行文件吗?
【发布时间】:2010-08-19 18:05:10
【问题描述】:

Ninite.com 目前似乎正在这样做。 我想知道怎么做。

虽然他们可以预先生成应用程序的每个组合,但这似乎不太可能/hacky。

[编辑]

使用此方法编译 Windows 可执行文件是否会占用大量资源?可以每天完成约 10 万次而无需高昂的成本吗?我之所以问,是因为 Ninite 宣布他们将只付费...会花这么多钱吗?

[编辑2]

下载量并不大,它只是一个小百 KB 的基于 Web 的下载器+安装器应用程序,它知道要安装哪些应用程序。

^^ 关于这一点,当需要安装 20 多个应用程序时,webapp 提供的 EXE 文件被命名为 Ninite AIMP Audacity Chrome Digsby FastStone Installer.exe。 很可能是服务器以不同的文件名提供同一个文件,然后应用根据文件名进行自我配置,不是吗?

【问题讨论】:

    标签: dynamic webforms


    【解决方案1】:

    该站点似乎没有创建可执行文件,而只是提供它们以供下载。

    [编辑] 动态创建那些巨大的下载会给服务器带来巨大的负担。此外,它可能会创建有缺陷的软件。所以我的猜测是,如果这些人知道他们在做什么,他们就有一个服务器,可以预先打包所有内容,对其进行测试,然后将其转储到 Web 服务器的下载目录中。

    当然,没有什么能阻止服务器调用任何类型的程序(也许冲浪者的耐心除外)。所以他们可以运行编译器、归档器等等。

    【讨论】:

    • 下载量并不大,它只是一个小百 KB 的基于网络的下载器+安装器应用程序,它知道要安装哪些应用程序。
    • 在这种情况下,安装程序可能是带有配置文件的固定二进制文件。服务器从一些描述中创建文本没有问题(HTML 是文本,所以你在屏幕上看到的内容是一样的)然后,服务器只需将选定的配置添加到二进制文件中。这比编译一个新的二进制文件更简单(也更快)。
    【解决方案2】:

    为什么网络服务器不能动态生成可执行文件?

    【讨论】:

      【解决方案3】:

      当然,只需在服务器上使用exec() 运行编译器即可。

      我对从 LaTeX 源生成 PDF 文件做了类似的事情,因为这基本上也是编译...

      【讨论】:

      • 这很快——谢谢!使用此方法编译 Windows 可执行文件是否会占用大量资源?可以每天完成约 10 万次而无需高昂的成本吗?我之所以问,是因为 Ninite 宣布他们将只付费......这会花费他们那么多吗?
      • 这最终归结为一个问题,你的代码可以编译多长时间。如果它只是一秒钟甚至更少,那么它应该不是什么大问题。但如果超过十秒,我会尝试另一种方法。
      • @tunack:不。编译单个 Windows exe 需要几秒钟到几分钟(取决于大小)。很可能,他们有一个现有的二进制文件,只是替换其中的一个资源。
      猜你喜欢
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多