C# 限制WCF传输文件的性能因素

C# 限制WCF传输文件的性能因素,c#,wcf,auto-update,C#,Wcf,Auto Update,我正在开发一个自动软件更新服务,客户端通过互联网获得软件的更新版本,我们正在考虑通过HTTP从远程服务器下载,因为它不受防火墙限制 更新服务器必须能够验证请求、检查软件许可证并向客户端提供正确的更新文件(好像可能有多个版本的软件需要更新) ASP.net web应用程序可能能够完成这项工作,但是我试图避免使用web应用程序,因为它需要安装在IIS中。我正在考虑一个basicHttpWCF库,它托管在一个带有流式传输模式的windows服务中,但是我读过一些文章说“用WCF传输文件不是一个好的做法

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

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

ASP.net web应用程序可能能够完成这项工作,但是我试图避免使用web应用程序,因为它需要安装在IIS中。我正在考虑一个
basicHttp
WCF库,它托管在一个带有
流式传输模式的windows服务中,但是我读过一些文章说“用WCF传输文件不是一个好的做法!我想知道为什么WCF不是一种文件传输技术?有哪些限制和替代方法?”


你建议使用WCF windows服务来完成这项工作吗?

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

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

完成此操作后,它将在更新的应用程序的exe上执行一个Process.Start


它已经在生产中运行了一年多,有数百名活跃用户,没有任何问题。

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

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

完成此操作后,它将在更新的应用程序的exe上执行一个Process.Start


它已经在生产中运行了一年多,有数百名活跃用户,没有任何问题。

我认为您最好只使用clickonce(或其他)之类的解决方案分发应用程序并单独验证您的许可证。您会发现,不管怎样,人们都会复制您的应用程序,公司环境总是有自己的打包解决方案。可能的重复,以及许多其他问题。这不是,主要问题是WCF是否好,我将更改标题使用clickonce之类的解决方案会更好分发应用程序并单独验证您的许可证。您会发现人们xcopy您的应用程序,不管怎样,公司环境都有自己的打包解决方案。可能的重复,以及许多其他问题。不是,主要问题是WCF是否是好的,我将更改标题您可能希望共享与WCF服务的速率限制、超时等相关的部分配置;我打赌这是他遇到问题的地方。您可能希望共享与WCF服务的速率限制、超时等相关的部分配置;我打赌这是他遇到问题的地方。