我正在开发一种自动软件更新服务,其中客户端通过互联网获得软件的更新版本,我们正在考虑通过HTTP从远程服务器下载,因为它不受防火墙限制。
更新服务器必须能够验证请求,检查软件的许可证并向客户端提供正确的更新文件(好像可能有多个版本的软件需要更新)
ASP.net Web应用程序可能能够完成这项工作,但我正在尝试避免使用Web应用程序,因为它需要安装在IIS中。我正在考虑使用basicHttp
托管在Windows服务中的Streamed transferMode
WCF库,但是我读过一些文章说“使用WCF传输文件不是一个好习惯!我想知道为什么WCF不是文件传输技术?有哪些限制和替代方案?
您是否建议为此作业提供WCF Windows服务?
答案 0 :(得分:1)
这并没有完全回答你关于WCF和传输文件的问题,但是我不久前建立了一个自动更新程序,它有一个WinForms应用程序的小客户端前端。它将获得本地文件列表,生成每个文件的MD5哈希并将其发送到Web服务,以便与Web服务器上的本地文件列表进行比较。 Web服务方法返回更改的文件列表。
然后客户端将循环遍历该列表并调用另一个Web服务,该服务将为每个文件返回一个字节数组并将其转储到本地硬盘驱动器。
完成此操作后,它将对更新的应用程序的exe执行Process.Start。
它已经在生产中运行了几百个活跃用户超过一年没有问题。