我需要一个WCF服务来上传用户的大文件。使用WCF上传文件
下方哪一个给出了更优化的性能
[OperationContract]
public void UploadFile(Stream inputsreaam);
或
[OperationContract]
public void UploadFile(byte[] buffer);
任何其他建议,欢迎
我需要一个WCF服务来上传用户的大文件。使用WCF上传文件
下方哪一个给出了更优化的性能
[OperationContract]
public void UploadFile(Stream inputsreaam);
或
[OperationContract]
public void UploadFile(byte[] buffer);
任何其他建议,欢迎
如果您想上传真正大的文件,请使用Stream One。如果您以byte []形式传输2 GB文件,则会将其加载到服务器上的内存中,并且只能将其保存在某处。借助Stream,您可以从客户端流中读取数据,并在服务器上写入文件或数据库流,而实际内存中只有很少的数据块。返回性能:对于非常大的文件和多个客户端,由于缺少内存,byte []可能会冻结服务器。
您可能还会发现这个tutorial有帮助。
通常,第一(Stream
参数)。如果您采用Stream
参数,并且您正在使用带有WebHttpBinding/WebHttpBehavior(即Web或REST端点)的端点,那么Stream参数将被绑定到整个请求主体,而不进行编码。在这种情况下,如果使用第二个参数(byte[]
),则参数必须根据格式(对于XML,编码为base64的字节;对于JSON,表示字节的实际数组数组)进行编码。
但是,如果您不使用Web端点(即,您正在使用SOAP端点),则两者非常相似,因为Stream或byte []参数将绑定到SOAP的SOAP主体,并且SOAP消息已被编码。
客户将会使用哪些服务? – ChrisBint
不能帮你吗?客户如何改变。 – Gerry