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

标签 c# asp.net web-services asynchronous async-await

我有一个 ASP.NET Web API 项目,它调用一个用 delphi 编写的服务。在我从服务获取的数据流变得太大之前,此连接工作正常(delphi 服务只是从数据库中读取一些数据,因此它们之间没有文件被发送)。

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

谢谢

最佳答案

异步与缓冲区大小或流式传输无关。

So, is there a possibillity to process the data that I am getting from my service in chunks?

是的,这就是您所需要的。我知道的所有 Web 服务 API 都支持流式传输。 WCF 和 HttpClient 当然可以。搜索例如“httpclient stream response”应该让你开始。

据我所知,这里不需要异步 IO。

关于c# webservice 调用,缓冲区太小(异步?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711971/

相关文章:

java - XML-22103 : (Fatal Error) DOMResult can not be this kind of node

c# - 使用 NUnit 测试 Windows 窗体逻辑

c# - 如何在服务器上验证客户端证书?

c# - ASP.NET DropDownList 中的 XSS 可能吗?

c# - 在 ASP.NET 中向页眉添加控件

java - Java 中 XML 解析和 WS API 的历史?

c# - 用于处理 azure 服务总线队列中的消息处理的选项

C# 第二维数组到一维数组的引用

C# 随机数生成的通用方法

c# - 如何在 C# 中使用代理访问 Web 服务