【发布时间】:2020-11-21 03:21:11
【问题描述】:
当前情况:一个现有的 SQL Server 存储过程,我无法控制在大约 30 秒内(每个数据集约 3 秒)在不同的结果集中返回 10 个大字符串。收集这些字符串的现有 ASP.NET Web API 控制器方法仅在从存储过程中获取所有字符串后返回响应。客户端收到响应后,又需要 30 秒的时间处理字符串并显示结果,从请求发起到操作完成总共需要 1 分钟。
预期的改进:一旦从 SqlDataReader 获得字符串,就以某种方式将字符串传输给客户端,因此客户端可以在接收后续字符串的同时解释每个字符串。因此,从请求发起到完成的总时间将大致减半。
我已经考虑过WebClient events 可供我使用,例如DownloadStringCompleted 和DownloadProgressChanged,但觉得没有一个是可行的,并且通常认为我走错了路,因此提出了这个问题。我有各种各样的想法,比如将字符串保存到服务器上的临时文件中,并通过并行 SignalR 通道将每个文件名发送到客户端以供客户端并行请求等,但感觉我既会浪费时间又会浪费时间你有机会启发我。
【问题讨论】:
-
这具有 en.wikipedia.org/wiki/XY_problem 的所有特征。请退后一步,从用户的角度具体描述您要解决的实际问题。
-
Roger that - 编辑问题...
标签: c# asp.net-web-api webclient