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