2015-02-24 30 views
0

我想通过wcf程序传输大文件。我发现this project 它工作,因为我想它但传输大文件是不可能的。有谁知道如何将其从缓冲转换为卡盘?将wcf传输程序从缓冲区更改为流式传输

这是结合:

<binding name ="FileTransferServicesBinding" 
transferMode="Streamed" 
messageEncoding="Mtom" 
maxReceivedMessageSize="10067108864" > 

回答

0

已链接已经流的项目,我们需要与您正在接受特定错误的详细信息。当您尝试传输大文件时会发生什么?你在谈论多大的文件?

考虑到这一点,您的问题很可能在于,链接的项目忽略了指定围绕文件大小的绑定设置多于maxReceivedMessageSize。绑定配置还可以包括嵌套元素readerQuotas

<readerQuotas 
    maxArrayLength="Integer" 
    maxBytesPerRead="Integer" 
    maxDepth="Integer" 
    maxNameTableCharCount="Integer" 
    maxStringContentLength=="Integer" /> 

其中关于什么构成可接受的消息定义的限制。默认值可以偏低,例如, maxArrayLength是16384.你使用的是byte []数组吗?它是否大于16384?

+0

我设法发送一个120Mb的文件,但在240Mb我的应用程序崩溃。 byte []数组是 'int chunkSize = 65000; // 2048; byte [] buffer = new byte [chunkSize];' – g90 2015-02-25 07:48:51

+0

@ g90要用这么少的信息去诊断问题非常困难。如果您可以更新有关崩溃的更多详细信息的原始问题,尤其是您收到的异常/错误,我会很乐意进一步提供帮助。 – 2015-02-25 14:22:39

+0

感谢您的关注。我将在今天晚些时候提供代码。 – g90 2015-03-02 08:44:54