【问题标题】:How to know when a response has finished being sent to the client?如何知道响应何时完成发送给客户端?
【发布时间】:2013-04-27 21:23:01
【问题描述】:

我有一个 Web API web 方法,它返回 xml 中的事件列表:

public IList<Event> GetAllEvents()
{
...
}

public class Event
{
    public string Name { get; set; }

    public int Id { get; set; }
}

客户端可能会发送一个 GET 请求并接收 100 个将被序列化的事件,所以会发生什么:

  • GetAllEvents 方法接收请求
  • 数据由方法提供
  • Web API 引擎将对象序列化为 xml
  • Web API 引擎将序列化数据(可能为 5MB)发送到客户端

整个过程可能需要例如5 秒。

我希望能够记录 Web API 引擎完成向客户端发送序列化数据的时间。

如何做到这一点?

【问题讨论】:

    标签: c# asp.net-mvc web-services asp.net-web-api


    【解决方案1】:

    你想在这里达到什么目的?

    根据您的操作的返回类型,Web API 创建一个名为 ObjectContent 的内容, 使用格式化程序来序列化响应。

    对于 ObjectContents,默认情况下,Web API 托管层会“缓冲”整个响应,然后再开始通过线路发送此缓冲数据。

    【讨论】:

    • 谢谢,我的意思是如何知道缓冲区何时发送到客户端?我想知道整个过程需要多长时间,特别是当有大量数据时,例如20MB。
    猜你喜欢
    • 2021-09-21
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多