使用wcf wshttpbinding的内存异常

问题描述

| 我有一个文件上传到服务器的应用程序。我正在使用nettcpbinding和wshttpbinding。当文件大于200 MB时,出现内存异常。解决此问题的方法是,我看到人们建议使用流传输,当然,它适用于nettcpbinding来处理大文件(> 1GB),但是当使用wshttpbinding时,将采用什么方法?我应该更改为basichttpbinding吗?什么??谢谢。     

解决方法

        我建议您公开另一个端点,以便仅上传如此大的数据。它可以具有支持流的绑定。在上一个项目中,我们需要将文件上传到服务器作为业务流程的一部分。我们最终创建了两个端点,一个端点专用于文件上传,另一个端点用于所有其他业务功能。 流数据服务可以是将任何数据流传输到服务器的通用服务,并且可能返回用于标识服务器上数据的令牌。对于后续请求,可以传递此令牌来处理服务器上的数据。     ,        如果您不想(或由于合法原因而不能)更改绑定或使用流式传输,那么您可以做的是使用一些带有签名的方法,方法如下:
void UploadFile(string fileName,long offset,byte[] data)
您无需发送整个文件,而是发送少量数据包,并告知应将数据放置在何处。当然,您可以添加更多数据,例如整个文件大小,文件的CRC,以了解传输是否成功等。