1

我正在开发一种自动软件更新服务,其中客户端通过互联网获取软件的更新版本,我们正在考虑通过 HTTP 从远程服务器下载,因为它不受防火墙限制的影响。

更新服务器,必须能够验证请求,检查软件的许可证并为客户端提供正确的更新文件(好像可能有多个版本的软件需要更新)

一个 ASP.net Web 应用程序可能能够完成这项工作,但是我试图避免使用 Web 应用程序,因为它需要安装在 IIS 中。我正在考虑basicHttp托管在 Windows 服务中的 WCF 库Streamed transferMode,但是我读过文章说“使用 WCF 传输文件不是一个好习惯!我想知道为什么 WCF 不是文件传输技术?有什么限制和备择方案?

您是否建议为这项工作提供 WCF Windows 服务?

4

1 回答 1

1

这并不能完全回答您关于 WCF 和传输文件的问题,但是不久前我构建了一个自动更新程序应用程序,它有一个小型客户端前端到 WinForms 应用程序。它将获取本地文件列表,生成每个文件的 MD5 哈希,并将其发送到 Web 服务,以便与 Web 服务器上的本地文件列表进行比较。Web 服务方法返回已更改文件的列表。

然后,客户端将遍历该列表并调用另一个 Web 服务,该服务将为每个文件返回一个字节数组并将其转储到本地硬盘驱动器。

完成后,它将在更新的应用程序的 exe 上执行 Process.Start。

它已经在生产环境中运行了一年多,有几百个活跃用户,没有出现任何问题。

于 2012-09-28T20:18:42.333 回答