Cra*_*lla 9 .net soap web-services
我有一个带WebMethod的标准SOAP Web服务,它接受一个字节数组,然后执行一个
[WebMethod(true)]
WriteFile(byte[] Data, string FilePath)
{
File.WriteAllBytes(FilePath, Data);
}
Run Code Online (Sandbox Code Playgroud)
如果这个过程传递了一个大文件,例如2兆字节,则会发出以下错误消息:
存在不足的系统资源来完成所请求的服务
看看我得到的堆栈跟踪:
我已经尝试了所有显而易见的事情,例如将maxrequestlength和执行超时设置为更真实的设置:
<httpRuntime maxRequestLength="409600" executionTimeout="900"/>
Run Code Online (Sandbox Code Playgroud)
它仍然似乎与上述故障.如果你发送一个较小的文件,它会保存到磁盘上.所以这是文件大小或时间问题.
有谁知道我还能做些什么来解决这个问题?
谢谢
戴夫
maxRequestLength 为 409600 会将数据大小限制为大约 400Kb,因此 2Mb 文件将大大超过此值。
GuidanceShare的人们很好地讨论了这种情况。简而言之:
HttpContext.Current.Response.BufferOutput=false;在客户端代码中设置。.NET 会自动将列表中的元素一一发送,因此列表中的每个元素可能是一个 1K 字节缓冲区。好吧,那是一条红鲱鱼!谢谢各位的评论,看来是我错了。
| 归档时间: |
|
| 查看次数: |
6549 次 |
| 最近记录: |