将大于100mb的文件作为byte []数组传输到asmx webservice

时间:2011-02-09 07:45:56

标签: web-services asmx bytearray file-transfer

我正在使用3.5 asp.net webapplication将文件作为字节数组转发到axmx 1.1 webservice但它在调用方法时出现以下错误

“底层连接已关闭:发送时出现意外错误”

bytearray长度是120788413但是当我使用较小的文件调用相同的方法时,即字节数组长度为3128994,它可以正常工作。

1.1 asmx webservice中是否有办法增加消息接收请求长度?

1.1 webservice无法升级因此无法使用WCF必须使用相同的服务,在web服务中我添加了这个

<httpRuntime executionTimeout="30720" maxRequestLength="1024000"/>

在system.web元素

也添加了这一部分

<microsoft.web.services2>
        <diagnostics>
      <trace enabled="true" input="InputTrace.webinfo" output="OutputTrace.webinfo"/>
    </diagnostics>
    <messaging>    <maxRequestLength>1024000</maxRequestLength>   </messaging><!-- 1GB -->
    </microsoft.web.services2>

但这似乎不起作用,在我的应用程序中我也使用具有相同值的httpruntime

请指导我如何在webservice中增加reciveing消息的长度?

1 个答案:

答案 0 :(得分:0)

没有好办法做到这一点。 ASMX服务将在处理请求的过程中多次将整个消息复制到内存中。你的100MB内存至少300MB。