我目前正在处理的项目需要一个WCF端点,它将接收一些结构化数据,并带有一个或多个二进制文件。
服务的客户希望对这些上传的大小没有限制,但一切都有限制。
我的问题是,用于上传文件的WCF服务在什么时候成为不合适的解决方案?
要将此置于某些上下文中,这不是最终用户将触发的解决方案,因此不需要进度条等等。
谢谢, 安德鲁。
答案 0 :(得分:1)
有趣的问题,安德鲁。
我正在全球一些大公司使用的CRM软件包上进行WCF开发。我不认为WCF在二进制上传和下载方面可以处理的功能有任何限制,但当然,我们遇到的实际限制是客户带宽,客户端和服务器超时(默认)对于客户来说是两分钟),服务器电源/存储以及其他可以通过一些创造性架构和编程来缓解的问题。
例如,我们的一些客户在第二世界国家/地区拥有笔记本电脑的最终用户,其带宽较差,这可能会触发下载/上传超时。我们通过使用“分块”上传和下载来缓解这种情况,这意味着如果上传或下载500MB文件,二进制文件会分解为更小的块(1MB或10MB),客户端和主机可以处理这些错误没有超时的连接,迭代直到下载或上传完成。并且这些块可以根据连接的“不良”进行动态调整。但是使用这种方法,我们可以毫不费力地将整个1GB +数据库下载到我们客户的设备上。
我们的客户使用史前PDA,iPad,Android设备等,所有特殊要求都可以通过一些巧妙的编程来减轻(再次)。
更好的是,我最近看到了一个女性服装目录应用程序的演示,该应用程序使用WCF提供内容......速度令人难以置信。您可以通过手指的翻转“旋转”页面,并且应用程序可以毫不费力地填写产品图片和描述的超速页面。这家伙说它是世界上第二快的目录应用程序 - 仅次于ebay。