【问题标题】:C# WebAPI rendering PDF with Splash screenC# WebAPI 使用启动画面渲染 PDF
【发布时间】:2014-11-14 15:14:39
【问题描述】:

我有一个运行良好的 WebAPI。我们根据数据库中的数据在服务器上生成 PDF,有时,这些数据非常大并且需要一段时间。一段时间 = 大概 30 秒。

有没有办法在生成 PDF 和 PDF 完成时向用户返回启动屏幕,然后在它已经返回“正在加载...”屏幕后将流重新注入到 HTTPResponseMessage?

【问题讨论】:

  • 听起来您将前端职责与后端职责混为一谈。您的前端在等待请求完成时应该显示一个启动屏幕;这不是 Web API 的责任。
  • 问题是前端将用户引导到一个页面,而该页面是显示pdf的位置。即myhost/api/makeapdf{id} - pdf 是根据该信息生成的。那是前端。
  • 您必须将 WebAPI 修改为异步,并更新数据库中的令牌标志以启动 PDF 创建过程,同时客户端应用程序读取数据库令牌标志,并显示“正在加载.. ",并且还在持续等待来自 WebAPI 的响应(因为它是异步的),当最终由 WebAPI 完成处理时,然后将最终响应发送给客户端,现在客户端应用程序显示最终的 pdf。

标签: c# asp.net asynchronous


【解决方案1】:

http://signalr.net/ 可能是一个很好的解决方案。让请求等待 30 秒通常不是一个好的解决方案

【讨论】:

    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 2010-10-05
    • 2019-02-13
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多