c# webservice调用,缓冲区太小(异步?)

本文关键字:异步 webservice 调用 缓冲区 | 更新日期: 2023-09-27 18:05:30

我有一个ASP。. NET Web API项目,它调用一个用delphi编写的服务。这个连接工作完美,直到我从服务获得的数据流变得太大(delphi服务只是从数据库读取一些数据,所以没有文件在它们之间发送)。

现在,当然我已经增加了MaxBufferSize,但在某些时候它变得荒谬,现在我正在寻找一个更复杂的解决方案。所以我遇到了async(每一个方法,我在我的delphi服务也可用异步,感谢微软)。但即使当我调用我的函数异步时,当数据流大于设置的缓冲区大小时,我仍然会得到一个错误(实际上我没有得到一个错误,执行只是停止在await GetData。那么,是否有可能以块的形式处理从服务中获取的数据呢?例如,我设置了数据流的最大大小,函数一直抓取,直到我得到所有的数据?

谢谢

c# webservice调用,缓冲区太小(异步?)

Async与缓冲区大小或流无关。

那么,是否有可能以块的形式处理我从服务中获得的数据?

是的,这就是你需要的。我所知道的所有web服务api都支持流媒体。WCF和HttpClient当然可以。搜索;"httpclient stream response"应该能让你继续。

Async IO在这里是不需要的,因为我可以告诉从给出的信息。